mar*_*nes 2 mongoose mongodb node.js
我想为我的API创建一个PATCH方法,但有些东西我不明白.想象一下,我的MongoDB数据库中有以下文档:
{
_id : ObjectId(1234...),
name : "bob",
age : 30
}
Run Code Online (Sandbox Code Playgroud)
现在我想更新此文档,但我不知道keys我的API会收到什么.所以想象一下我request为了改变age而做了一个但也加了一个last_name.
请求结果如下:
{
_id : ObjectId(1234...),
name : "bob",
last_name : "smith",
age : 44
}
Run Code Online (Sandbox Code Playgroud)
这里的主要问题是我不知道我将收到的论据.
我的目标是更新现有密钥的值并添加不在文档中的密钥.
任何的想法?
谢谢
Bri*_*oah 10
您想使用$set运营商.
这样做只会更新更新查询中发送的密钥.如果没有$set,它将覆盖整个对象,这显然不是你想要的.
app.patch('/user/:id', function (req, res) {
var updateObject = req.body; // {last_name : "smith", age: 44}
var id = req.params.id;
db.users.update({_id : ObjectId(id)}, {$set: updateObject});
});
Run Code Online (Sandbox Code Playgroud)
我在这里假设几件事:
| 归档时间: |
|
| 查看次数: |
9996 次 |
| 最近记录: |