使用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 } 

这里的主要问题是,我不知道我会收到的论据。

我的目标是更新现有密钥的值并添加不在文档中的密钥。

任何想法?

谢谢

       

网上收集的解决方案 "使用Node的PATCH方法到MongoDB"

你想使用$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}); }); 

我在这里假设一些事情:

  1. 你正在使用快递。
  2. 您正在使用mongodb驱动程序或mongojs npm模块