假设我在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")
]
}
P.S 我对所有相关文件做了哪些更改。 (许多用户可以拥有相同的电影ID)
谢谢:)
答案 0 :(得分:0)
您可以使用$ pull运算符。 所以在你的情况下,查询将是
db.collection.updateOne({"_id": ObjectId("5890e5ea619737392c257846")},
{"$pull": {"movies": ObjectId("5890e5ee619737392c25784a")}})