【发布时间】:2011-12-08 05:41:04
【问题描述】:
我有一个名为文档的 Mongo 集合,其结构如下:
{
name: "..."
tokens: [
{
_id: <string (unique)>,
tf: <integer>,
tf_idf: <float>
},
...
]
}
我有一个我想保留的令牌列表。是否有可能使用$pull 构建查询以删除列表中不包含 id 的所有令牌?
以下不起作用:
db.documents.update({name: "foo"}, {
$pull : {
$not : {
$elemMatch : { 'tokens' : { '_id' : ['foo', 'bar'] }}
}
}
})
到目前为止,我看到的唯一选择是遍历所有文档并检查客户端是否保留令牌并最终将它们一一删除。我宁愿使用一种不涉及将所有数据拉到客户端的方法,只是为了检查哪些令牌可以删除,哪些不能。
【问题讨论】: