MongoDB: upsert с различными значениями для обновления и вставки - PullRequest
0 голосов
/ 24 декабря 2010

Небольшой контекст: у меня есть документ для каждого пользователя, который содержит массив с последними 20 событиями, связанными с пользователем. Поскольку MongoDB не имеет этой функции (для ограничения массивов внутри документа), я перенесу свое событие и выскажу последнее.

Моя проблема: инициализация документа (или заполнение массива нулями). Я хочу атомарно:

  • создать документ, содержащий массив с 20 нулевыми значениями, и нажать одно значение, если документ не существует

или

  • обновить документ (выдвинуть одно значение в массиве), если документ существует

У вас есть другие предложения? Хаком, о котором я думал, было бы объявить индекс с: unique и: dropDups и всегда делать инициализационную вставку.

Относится к: Реализация массива MongoDB с фиксированным размером

1 Ответ

1 голос
/ 25 декабря 2010

Невозможно за одну операцию, пока.Вы хотите http://jira.mongodb.org/browse/SERVER-991 или http://jira.mongodb.org/browse/SERVER-453.

...