बनाते समय जब नए दस्तावेज़ का निर्माण और फिर एक नई उप दस्तावेज़ Upsert को मैं इस त्रुटि मिलती है कोशिश:नकली चाबी त्रुटि एक नया नेवला उप दस्तावेज़
Object {error: "E11000 duplicate key error index: sales.users.$gro…p key:
{ : ObjectId('537b7788da19c4601d061d04') }"}
error: "E11000 duplicate key error index: sales.users.$groups.groupId_1
dup key: { : ObjectId('537b7788da19c4601d061d04') }"
__proto__: Object
उप दस्तावेज़ मैं सम्मिलित करने के लिए कोशिश कर रहा हूँ उप-स्कीमा के रूप में परिभाषित किया गया है जिसमें आवश्यकताएँ {अद्वितीय: सत्य}, {sparse: true} के साथ समूह आईडी फ़ील्ड है। नेवला विधि कॉल मैं Upsert करने के लिए उपयोग कर रहा हूँ है:
User.findByIdAndUpdate(userId,
{ $push: { 'groups': userUpdate} },
function (err, obj) where userUpdate = { groupId: groupId }.
नहीं रह गया है अनुक्रमित समस्या का समाधान होने और इस त्रुटि छोड़ने के बाद होता है।
var UserSchema = new Schema({
email: {
type: String,
required: true,
unique: true
},
active: {
type: Boolean,
default: true
},
username: {
type: String,
required: true,
unique: true
},
password: {
salt: {
type: String,
required: true
},
hash: {
type: String,
required: true
}
},
securityQuestion: {
question: String,
salt: String,
hash: String
},
mobile: {
PIN: Number,
Number: Number
},
createDate: {
type: Date,
default: Date.now
},
updateDate: Date,
lastLoginDate: Date,
prevLoginDate: Date,
passChangeDate: Date,
locked: Boolean,
lockDate: Date,
failedCount: Number,
failedDate: Date,
profile: profile,
preference: preference,
courses: [UserCourseSchema],
groups: [UserGroupSchema],
rewards: [UserRewardSchema],
roles: UserRoleSchema,
scores: [UserScoreSchema]
});
var UserGroupSchema = new Schema({
groupId: {
type: Schema.Types.ObjectId,
unique: true,
sparse: true
},
joinDate: {
type: Date,
default: Date.now
},
receiveNotifications: {
type: Boolean,
default: true
},
isAdmin: {
type: Boolean,
default: false
},
isOwner: {
type: Boolean,
default: false
},
isModerator: {
type: Boolean,
default: false
},
updateDate: Date
});
क्या आप दस्तावेजों की स्कीमा और उपयोग किए गए इंडेक्स के साथ अपना प्रश्न बढ़ा सकते हैं? –
यदि आप यह सुनिश्चित करने की कोशिश कर रहे हैं कि एक उपयोगकर्ता के पास 'समूह' में डुप्लिकेट समूह नहीं हो सकते हैं, तो यह काम नहीं करेगा। Http://stackoverflow.com/q/13907257/1259510 – JohnnyHK
देखें जो चीज़ मैं समझने में असमर्थ हूं वह यह है कि यह ** UserUpdate ** _id क्यों है? सावधानियों के लिए, $ push पर जाने से पहले इस ओबीजे से _id संपत्ति को हटा दें – Taha