मैंने एक आम प्रयोक्ता स्कीमा परिभाषित किया है:
var userSchema = mongoose.Schema({
email: { type: String, required: true, unique: true},
password: { type: String, required: true},
name: {
first: { type: String, required: true, trim: true},
last: { type: String, required: true, trim: true}
},
phone: Number,
lists: [listSchema],
friends: [mongoose.Types.ObjectId],
accessToken: { type: String } // Used for Remember Me
});
var listSchema = new mongoose.Schema({
name: String,
description: String,
contents: [contentSchema],
created: {type: Date, default:Date.now}
});
var contentSchema = new mongoose.Schema({
name: String,
quantity: String,
complete: Boolean
});
exports.User = mongoose.model('User', userSchema);
दोस्तों पैरामीटर को ऑब्जेक्ट आईडी की एक सरणी के रूप में परिभाषित किया गया है। तो दूसरे शब्दों में, एक उपयोगकर्ता के पास अन्य उपयोगकर्ताओं की आईडी युक्त एक सरणी होगी। मुझे यकीन नहीं है कि यह ऐसा करने के लिए उचित अंकन है।
मैं नए उपयोगकर्ता को वर्तमान उपयोगकर्ता के मित्र सरणी पर धकेलने का प्रयास कर रहा हूं:
user = req.user;
console.log("adding friend to db");
models.User.findOne({'email': req.params.email}, '_id', function(err, newFriend){
models.User.findOne({'_id': user._id}, function(err, user){
if (err) { return next(err); }
user.friends.push(newFriend);
});
});
हालाँकि इससे मुझे निम्नलिखित त्रुटि मिलती है:
TypeError: ऑब्जेक्ट 531975a04179b4200064daf0 में कोई विधि 'कास्ट' नहीं है
[{"$oid": "dfdfsdfsg565ls"},...]
बजाय["hkugh87tgkgk", ....]