0
我有一個用戶(文檔),我在其中維護了一組朋友(嵌入式文檔)。我一直在努力確保給定的用戶,所有的朋友都是獨一無二的(電子郵件必須是唯一的)。然而,這個約束不是強制執行的,我不明白爲什麼。有人可以幫助我嗎?如何確保嵌入式文檔集合中的唯一性
我正在使用Mongo 2.2和Mongoose。
var FriendSchema = new mongoose.Schema({
email : { type: String, required: true, lowercase: true, trim: true }
, name : { type: String, trim: true }
});
var UserSchema = new mongoose.Schema({
email : { type: String, required: true, index: { unique: true }, lowercase: true, trim: true }
, friends : [FriendSchema]
});
UserSchema.index({ 'friend.email': 1 }, { unique: true });
我也遇到了這個問題。讓Node.js處理這件事是否安全?在異步保存調用期間不能發生這種情況嗎? – wtjones 2013-02-26 03:42:50
是的,但沒有其他選擇。你可以做一些事情,比如兩步保存以減少機會。但是在一天結束的時候,如果數據庫沒有執行它,你會遇到這個問題。 – 2013-02-27 22:04:03