0
我正在使用MongoDB和Perl。这里是我的数据结构:如何根据内容删除数组中的元素?
{
"_id" : ObjectId("501976f8005c8b541d000000"),
"err_id" : "err",
"solution" : [
{
"attachment" : "attach",
"macr" : "macrs",
"yammer" : "yam",
"resolution" : "l",
"salesforce" : "salesforce",
"username" : "bob"
},
{
"attachment" : "attach",
"macr" : "macrs",
"yammer" : "yam",
"resolution" : "losssss",
"salesforce" : "salesforce",
"username" : "bob"
}
]
}
正如你所看到的,我有一个内部对象的数组。我使用Perl MongoDB库创建了它。
我熟悉在Perl MongoDB库中操作数组的一些语法。例如,我使用它来查找用户名与$username
相同的条目。
$users->find({"solution.username" => $username});
我想移除元素是非常简单的:
$users->remove({"solution.username" => $username});
但很可惜,它不是这样。我已经尝试过,并使用拉,但无济于事!我很难找到这个。有人知道基于其中一个字段的内容去除数组元素的语法吗?
就像find()返回整个文档一样,remove()删除整个文档。 – 2012-08-01 18:55:22
正确的 - 因为它实际上是我想删除整个文档!但它似乎并没有删除任何东西。我的示例语法是否正确? – PinkElephantsOnParade 2012-08-01 18:56:12
我不熟悉Perl语法,但是我检查了文档。它看起来没问题。如果你的find()返回一些文档,那么你的remove()应该理想地删除所有这些文档,因为你的查询完全一样,就像你在例子中提到的那样。 – 2012-08-01 19:03:11