我想在MongoDB中查找,修改并保存对象。它看起来像是:
var message = req.body;
db.collection('user', function(err, collection) {
collection.findOne({'facebook_id':req.params.facebook_id}, function(err, item) {
if(item) {
item.messages.push({'value': message.value, 'date': message.date});
//save Object
}
});
});
我现在如何保存对数据库所做的更改?
或者我应该使用.update()?这里的问题是,我不想交换整个对象,但更多的东西插入到该对象的数组中。
谢谢&最好, 马克
答案 0 :(得分:1)
db.collection.update ({'facebook_id':req.params.facebook_id}, item, function (err) {
if (err) return next (err);
});
答案 1 :(得分:1)
collection.update({'facebook_id':req.params.facebook_id},
{$push: { messages: {'value': message.value, 'date': message.date} } }, function(err) {
});
使用$ push运算符直接在数据库中向数组添加值。 http://docs.mongodb.org/manual/reference/operator/update/push/
请注意,这比更新整个对象更有效,特别是对于大型对象。