我已經定義了一個用戶貓鼬架構:如何用對象ID數組創建Mongoose模式?
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);
朋友參數定義爲對象ID的數組。 換句話說,用戶將擁有包含其他用戶的ID的數組。我不確定這是否是這樣做的正確標記。
我試圖推動新的朋友,以當前用戶的朋友陣列:
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);
});
});
但是這給了我以下錯誤:
類型錯誤:對象531975a04179b4200064daf0有沒有方法「投」
但隨後創建一個數組,看起來像'[{ 「$ OID」: 「dfdfsdfsg565ls」},...]'而不是' [「hkugh87tgkgk」,....]' – CodyBugstein
這就是它應該是的,ObjectIds的列表。貓鼬已經處理它們。 –
'populate()'做了什麼? –