【发布时间】:2018-06-26 02:07:28
【问题描述】:
我想更新嵌套在对象数组中的字符串数组。
这是我的 Mongo 文档:
{
"_id" : ObjectId("5a52d995734d1d388d17eb0b"),
"teams" : [
{
"assignedModels" : [
"5a1665a82c7eb90001a7d676",
"58d8fc2d734d1d5af6dd4803"
]
},
{
"assignedModels" : [
"58d8fc2d734d1d5af6dd4803"
]
}
]
}
现在我想从每个团队对象的 assignedModels 中删除 "58d8fc2d734d1d5af6dd4803" 字符串。
我已经尝试了一些查询,但没有按预期工作
当前查询:
db.collection('organisations').updateMany(
{ _id: database.ObjectID("5a52d995734d1d388d17eb0b") ,'teams.assignedModels' : { $exists:true } },
{ $pull : {'teams.$.assignedModels' : "58d8fc2d734d1d5af6dd4803" } },
{ multi: true });
当前输出:
正确更新了团队数组的第 0 个元素,但没有遍历其他对象。
我也试过 $[], teams.assignedModels
预期输出:
{
"_id" : ObjectId("5a52d995734d1d388d17eb0b"),
"teams" : [
{
"assignedModels" : [
"5a1665a82c7eb90001a7d676"
]
},
{
"assignedModels" : [
]
}
]
}
【问题讨论】:
-
您使用的是哪个版本的 MongoDB?
-
mongod 版本:3.4.10 (MMAPv1) (Mlab)
标签: arrays node.js mongodb object nested