所以..我正在评估 Mongodb 以管理我的一些 JSON 后端。我对它完全陌生,我遇到了一个在代码中很乱的问题,所以我想 - 哎呀 - 让我看看是否是时候最终开始使用 Mongo
我有一个大约是这样的数据结构:
[
{
"_id" : ObjectId("526f59ee82f2e293f9833c54"),
"humans" : [
{
"serviceUsers" : [
{
"foo1" : "bar2",
"foo2" : "bar3"
},
{
"foo1" : "baz2",
"foo2" : "baz3"
}
]
}
]
}
]
现在我想删除所有“foo1”等于“baz2”的 serviceUsers 数组元素,这样理想情况下我会得到这个:
[
{
"_id" : ObjectId("526f59ee82f2e293f9833c54"),
"humans" : [
{
"serviceUsers" : [
{
"foo1" : "bar2",
"foo2" : "bar3"
},
]
}
]
}
]
我想那$pull
是开始的地方。我尝试了一堆扭曲。如果我在收集我的测试,我试过了
db.mytests.update({"humans.serviceUsers.foo1":"baz2"}, {$pull:{"humans.serviceUsers" : {"foo1":"baz2"}}}, {multi: true})
在我天真的眼中,它似乎应该遵循以下$pull
语法:
db.collection.update( { field: <query> }, { $pull: { field: <query> } } );
蒙哥没有抱怨。但它也不会以任何方式改变集合。
我也试过
db.mytests.update({}, {$pull:{"humans.serviceUsers" : {"foo1":"baz2"}}}, {multi: true})
这也失败了。
非常感谢任何建议。