我有兩個集合(用戶和書籍)運行的mongodb(MEAN環境)。其中一個集合(myusers)的包含的ObjectID數組(引用藏書的文件)本身:與新書的IDSMongodb/Mongoose:填充ObjectIds數組
var UserSchema = new Schema({
[...],
externalids: [{type: Schema.Types.ObjectId, ref: 'Books', required: false}]
}, {collection: 'myusers'});
在運行時,我想不斷地填補陣列(外部ID)文檔。這就是我要做的事:
var newBook = new Book({ ... });
newBook.save(function (err){
if (err){
//whatever
}else{
User.update({ _id: req.user._id }, { $set: { externalids: newBook._id }}, function(err){
//whatever
});
}
});
不幸的是,我不能使用類似:
externalids: externalids.push(newBook._id)
我甚至嘗試:
User.update({ _id: req.user._id }, { $push: { externalids: newBook._id }}
但是,如果沒有幫助。 因此,該數組總是隻包含一個值(最新)並且不會被填滿。有沒有快速添加更多值的方法?將是很好,如果有比第一讀取陣列的內容,將其存儲到本地臨時數組更快的方法,追加新的價值和整個陣列寫回... 乾杯
伊戈爾
即使使用$ push,您仍然只能獲得數組中的一個項目? – 2014-09-25 22:24:03
不,使用$ push不會改變任何東西!?甚至不改變單個項目... – 2014-09-25 22:29:51
是newBook._id一個ObjectId或字符串表示? – 2014-09-25 22:34:59