gpt4 book ai didi

node.js - 使用 DocumentID 更新整个 MongoDB 文档

转载 作者:太空宇宙 更新时间:2023-11-04 00:16:46 24 4
gpt4 key购买 nike

我尝试在 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"
}
]
}

最佳答案

从文档中您缺少更新对象。

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);
},
);

如果您没有该对象,它将创建一个新文档。

关于node.js - 使用 DocumentID 更新整个 MongoDB 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46579794/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com