节点 – 使用DocumentID更新整个MongoDB文档

我试图在“平均值”中执行CRUD操作。 我正在尝试使用documentid更新整个文档。 我不知道如何做到这一点。 以下是我的代码:

Users.prototype.updateUser = function (req, cbk) { var self = this; var reqObj = req.body; var response = { status: false, err: null, data: null }; console.log(new Date() + " | user update ", reqObj) self.db.collection('users').update({_id:ObjectId(reqObj._id)}, {upsert:true}, function (err, result) { if (!err && result.length > 0) { response['status'] = true; response['data'] = result; cbk(response) } else { response['err'] = 'No user found!'; cbk(response) } }); }; 

我试图发送的JSON请求是:

 { "_id": "59d5db3c4c46e83a14b94617", "name": "hello", "ind": "0" } 

我总是得到一个用户没有find答复。 任何想法我做错了什么?

编辑:

这里是用户列表的JSON响应:

 { "status": true, "err": null, "data": [ { "_id": "59d5db344c46e83a14b94616", "name": "test" }, { "_id": "59d5db3c4c46e83a14b94617", "name": "hello" } ] } 

       

网上收集的解决方案 "节点 – 使用DocumentID更新整个MongoDB文档"

从文档你缺less更新对象。

collection.update(criteria, update[[, options], callback]);

 self.db.collection('users') .update( { _id: ObjectId(reqObj._id) }, reqObj, { upsert: true }, function (err, result) { if (err) { response['err'] = err.message; } else { response['status'] = true; response['data'] = result; } cbk(response); }, ); 

如果你没有这个对象,它会创build一个新的文档。