2013-11-15 60 views
3

我有一個燒錄服務正在運行,它連接到mongodb以保存用戶信息。當我想保存用戶信息時,首先檢查用戶是否存在該用戶名,然後將條目添加到MongoDB中。現在我的問題是有任何機會後,我檢查我db另一個條目創建之前添加相應的條目。如何將數據保存在一個字段作爲主鍵的MongoDB中

回答

1

我認爲這是非常少的機會,無論如何你使用唯一索引(在用戶名上)來強制mongodb級別的唯一性?

像這樣的東西應該讓你感到更安全:

db.users.ensureIndex({ "username": 1 }, { unique: true }) 
+0

這工作,如果在單一monogo instace存在的數據,但如果我使用分片 – user2961674

+0

有辦法越過分片集合強制執行唯一性,他們有兩種選擇我知道,他們在這裏描述:http://docs.mongodb.org/manual/tutorial/enforce-unique-keys-for-sharded-collections/,基本上你可以用獨特的約束碎片集合:'db.runCommand ({shardCollection:「users」,key:{username:1},unique:true});' – jbub

相關問題