使用 Node 到 MongoDB 的 PATCH 方法

问题描述 投票:0回答:1

我想为我的 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
}

这里的主要问题是我不知道我将收到的论点。

我的目标是更新现有键的值并添加文档中没有的键。

有什么想法吗?

node.js mongodb mongoose
1个回答
23
投票

您想使用

$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 模块
© www.soinside.com 2019 - 2024. All rights reserved.