【问题标题】:How to delete an item in an array that is inside mongodb specific document? [duplicate]如何删除 mongodb 特定文档中的数组中的项目? [复制]
【发布时间】:2017-06-17 09:59:23
【问题描述】:

假设我在 MongoDB 中有这个集合:

{
    "_id" : ObjectId("5890e5ea619737392c257846"),
    "email" : "ewrt@ert.com",
    "pass" : "123456",
    "firstName" : "sdlriugth",
    "lastName" : "sdfligkjh",
    "movies" : [ 
        ObjectId("5890e5ec619737392c257847"), 
        ObjectId("5890e5ed619737392c257848"), 
        ObjectId("5890e5ee619737392c257849"), 
        ObjectId("5890e5ee619737392c25784a")
    ]
}
{
    "_id" : ObjectId("5890e5f8619737392c25784c"),
    "email" : "wieruy@dgf.com",
    "pass" : "123456",
    "firstName" : "yjhtgj",
    "lastName" : "vbnvbng",
    "movies" : [ 
        ObjectId("5890e5fa619737392c25784d"), 
        ObjectId("5890e5fb619737392c25784e"), 
        ObjectId("5890e5fc619737392c25784f")
    ]
}

有 2 个用户,每个用户都有一个电影 ID 数组。

我想做一个查询,从拥有这部电影的用户那里删除一个特定的电影 ID。

假设我要删除电影 ID:“5890e5ee619737392c25784a”,我会得到:

    {
    "_id" : ObjectId("5890e5ea619737392c257846"),
    "email" : "ewrt@ert.com",
    "pass" : "123456",
    "firstName" : "sdlriugth",
    "lastName" : "sdfligkjh",
    "movies" : [ 
        ObjectId("5890e5ec619737392c257847"), 
        ObjectId("5890e5ed619737392c257848"), 
        ObjectId("5890e5ee619737392c257849"), 
    ]
}
{
    "_id" : ObjectId("5890e5f8619737392c25784c"),
    "email" : "wieruy@dgf.com",
    "pass" : "123456",
    "firstName" : "yjhtgj",
    "lastName" : "vbnvbng",
    "movies" : [ 
        ObjectId("5890e5fa619737392c25784d"), 
        ObjectId("5890e5fb619737392c25784e"), 
        ObjectId("5890e5fc619737392c25784f")
    ]
}

附言 我要对所有相关文件进行哪些更改。 (许多用户可以拥有相同的电影 ID)

谢谢:)

【问题讨论】:

  • 我忘了说我希望对所有相关文档进行更改,而不是针对特定用户。

标签: mongodb


【解决方案1】:

您可以使用 $pull 运算符。 所以在你的情况下,查询将是

db.collection.updateOne({"_id": ObjectId("5890e5ea619737392c257846")},
{"$pull": {"movies": ObjectId("5890e5ee619737392c25784a")}})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-18
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多