【问题标题】:Robo3T delete one element inside a key in a document? [duplicate]Robo3T 删除文档键中的一个元素? [复制]
【发布时间】:2020-07-04 06:46:34
【问题描述】:

我整天都在寻找如何对集合中的文档中的一个元素进行简单的删除。我对 mongo 脚本还很陌生,所以请耐心等待。

我目前正在使用这个脚本来查看某个文档:

 db.getCollection('roles').deleteOne({"_id": "e9b4afad-cb5c-4588-9560-161867faa5b7"})

这是文档在执行后在 Robo3T 中显示的内容:

{
    "_id" : "e9b4afad-cb5c-4588-9560-161867faa5b7",
    "appIds" : [ 
        "rpt", 
        "wc", 
        "bw"
    ],
}

我只是想从 appIds 中删除“rpt”。到目前为止我已经尝试过了,但它不起作用:

db.getCollection('roles').find({"_id": "e9b4afad-cb5c-4588-9560-161867faa5b7"}).remove({"appIds": "rpt"})

有什么文档可以为我指明正确的方向吗?

谢谢!

【问题讨论】:

  • @whoami 是的,它非常有帮助,它解决了我的问题。谢谢!

标签: mongodb mongodb-query


【解决方案1】:

这不是一件容易的事,但我相信$pull 会完成这项工作。

$pull 运算符从现有数组(在文档中)中删除与指定条件匹配的一个或多个值的所有实例。

我会试试的,

db.roles.update(
  { },
  { $pull: { appIds: "rpt"}},
  { multi: true }
)

让我知道它是否有效......

如果您想更新特定的 id,只需将其添加到第一部分 {}, -> {_id: *****},

请参阅 https://docs.mongodb.com/manual/reference/operator/update/pull/ 上有关 MongoDB 的精彩文档

【讨论】:

  • 那行得通。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2015-03-07
  • 2018-05-27
  • 2018-11-08
  • 1970-01-01
  • 2021-07-02
  • 2012-11-22
  • 2017-05-13
  • 1970-01-01
相关资源
最近更新 更多