Потяните за каждый элемент встроенного хэша в MongoDB - PullRequest
1 голос
/ 06 ноября 2011

В 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 Ответ

3 голосов
/ 06 ноября 2011

Вы не можете сделать это, используя атомарные обновления , поскольку позиционный оператор обновит только первый соответствующий элемент во вложенном массиве.Вы можете сделать несколько обновлений только для полей корневого уровня.Есть только одно решение: загрузить документ, обновить вложенный массив и сохранить.

...