使用Node的PATCH方法到MongoDB
我想为我的API创build一个PATCH方法,但有一些我不明白。 想象一下,我在我的MongoDB
数据库中有以下文档:
{ _id : ObjectId(1234...), name : "bob", age : 30 }
现在我想更新这个文件,但我不知道我的API将会得到什么keys
。 所以想象我为了改变age
而提出一个request
,但也添加了一个last_name
。
请求结果会是这样的:
{ _id : ObjectId(1234...), name : "bob", last_name : "smith", age : 44 }
这里的主要问题是,我不知道我会收到的论据。
我的目标是更新现有密钥的值并添加不在文档中的密钥。
任何想法?
谢谢
你想使用$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}); });
我在这里假设一些事情:
- 你正在使用快递。
- 您正在使用mongodb驱动程序或mongojs npm模块