更新所有字段mongodb node.js

arknldoa  于 2022-11-28  发布在  Go
关注(0)|答案(2)|浏览(174)

我有这样的代码:

const database = client.db("Cluster0");
const collection = database.collection("people");

let data = { ...req.body}
let doc = collection.updateOne(
    { id: req.body.id }, 
    {$set: {}}
)

我尝试做的是用从后端传来的所有数据更新整个文档。2所以可能有10个字段,如果用户只更新1个字段,它将传递所有10个字段,并更新文档。
我该怎么做?

dgiusagp

dgiusagp1#

const database = client.db("Cluster0");
const collection = database.collection("people");

let data = { ...req.body};
delete data.id;
let doc = collection.updateOne(
    { id: req.body.id }, 
    {$set: data}
)

因为id是主键,所以你不能在对象中传递它,所以你必须删除它,这就是我删除它的原因。

kt06eoxx

kt06eoxx2#

您可以在没有$set的情况下执行此操作,例如:

let doc = collection.updateOne(
    { id: req.body.id }, 
     data
)

了解有关mongo updateOne的更多信息:https://www.mongodb.com/docs/manual/reference/method/db.collection.updateOne/

相关问题