PATCH 方法 MongoDB 使用 Node
PATCH method to MongoDB using Node
我想为我的 API 创建一个 PATCH 方法,但有些东西我不明白。假设我的 MongoDB
数据库中有以下文档:
{
_id : ObjectId(1234...),
name : "bob",
age : 30
}
现在我想更新此文档,但我不知道 keys
我的 API 会收到什么。所以想象一下我做了一个 request
来改变 age
但也添加了一个 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 模块
我想为我的 API 创建一个 PATCH 方法,但有些东西我不明白。假设我的 MongoDB
数据库中有以下文档:
{
_id : ObjectId(1234...),
name : "bob",
age : 30
}
现在我想更新此文档,但我不知道 keys
我的 API 会收到什么。所以想象一下我做了一个 request
来改变 age
但也添加了一个 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 模块