所以,我有一个看起来像这样的文档:
[
{
"_id" : ObjectId("52774aa8036473112ef715eb"),
"humans" : [
{
"name" : "WTF",
"serviceUsers" : [
{
"username" : "someoneelse",
"serviceID" : "abcdefghijklmnop",
"service" : "twitter",
"onBehalfOf" : "WTF-test"
}
]
}
],
"password" : "r4fp+7glE/qR3VJuP7Jlvt6pEx4thssi503O8CfFAK1HJEB1F1bIkDHaf+6LHDbm",
"services" : [
{
"twitter" : [ ]
}
],
"username" : "darthjulian",
"version" : NumberLong(1)
}
]
那个数组services
?我想删除元素,twitter
因为它是空的。
我可以使用以下方法成功查询文档:
> db.users.find({'services.twitter': []}).toArray()
因此,使用update
原型:
db.collection.update( { field: <query> }, { $pull: { field: <query> } } );
我尝试了$pull
那个元素..但是文档没有改变。
我在 shell 中的命令是:
> db.users.update({'services.twitter': []}, {$pull: {'services.twitter': []}})
根据原型,这似乎很简单——查询使用 find 工作,但在 $update 期间,什么也没有发生,甚至没有错误消息。
有什么线索吗?