拉取MongoDB中嵌入式哈希的每个元素

时间:2011-11-06 12:37:05

标签: mongodb mongoid

在MongoDB中,我的文档定义如下:

{
    'foo': {
        'a': [1,2,3,4,5],
        'b': [1,5,9],
        'c': [2,5,7]
    }
}

我正在寻找一种简单的方法来删除每个列表中出现的数字2。在此示例中,这会将此文档更新为:

{
    'foo': {
        'a': [1,3,4,5],
        'b': [1,5,9],
        'c': [5,7]
    }
}

有没有解决方案?

感谢。

1 个答案:

答案 0 :(得分:3)

您无法使用atomic updates执行此操作,因为positional operator将仅更新嵌套数组中的第一个匹配项。您只能对根级别字段进行多次更新。 只有一个解决方案:加载文档,更新嵌套数组并保存。