【问题标题】:MongoDB: how to update only one element in the document?MongoDB:如何只更新文档中的一个元素?
【发布时间】:2019-02-09 11:00:13
【问题描述】:

我只想更新文档中的一个元素以使用 put 请求

我试过了

PUT 本地主机:3000/api/memo/5b8e382d61984255d879f872

{
    text: "updated!"
{

但是,它是这样更新的

{
    text: "updated!",
    imgUrl: null,
    tag: null,
    ...
}

有没有办法更新文档中的一个元素?

await Memo.where('_id')
      .equals(req.params.id)
      .updateOne({
        imgUrl: req.body.imgUrl,
        text: req.body.text,
        tag: req.body.tag,
        user: req.body.user,
        loc: req.body.loc
      })

【问题讨论】:

    标签: mongodb mongoose mongodb-query


    【解决方案1】:

    您可以使用以下解决方案仅更新一个元素:

    Memo.updateOne(
      { "_id" : ObjectId("5b8e83957d56e802274d6") },
      { $set: { "text" : "updated" } });
    

    UpdateOne() 更新集合中与过滤器匹配的第一个匹配文档。上述查询操作更新单个文档,其中 text: "updated"。

    该操作可以替换现有文档或更新现有文档中的特定字段。

    【讨论】:

    • 虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。
    • UpdateOne() 更新集合中与过滤器匹配的第一个匹配文档。上述查询操作更新单个文档,其中 text: "updated"
    • 该操作可以替换现有文档或更新现有文档中的特定字段。
    • 我把你的cmets放在了答案里,你可以随时编辑你的帖子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-05
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    相关资源
    最近更新 更多