我尝试在MEAN中进行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"
}
我总是收到用户未找到的回复。我有什么想法吗?
编辑:
以下是用户列表的JSON响应:
{
"status": true,
"err": null,
"data": [
{
"_id": "59d5db344c46e83a14b94616",
"name": "test"
},
{
"_id": "59d5db3c4c46e83a14b94617",
"name": "hello"
}
]
}
答案 0 :(得分:1)
从文档中您缺少更新对象。
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);
},
);
如果您没有该对象,它将创建一个新文档。