Можно ли вставить или обновить несколько документов с помощью одной команды в MongoDB? - PullRequest
0 голосов
/ 22 августа 2011

Я пришел из MySQL, где вы можете иметь огромную INSERT и добавить (или ON DUPLICATE KEY UPDATE) набор строк в одном запросе, вместо того, чтобы иметь цикл с отдельными запросами для каждой строки. Не похоже, что есть такая опция в MongoDB. Это правильно?

Я понимаю, что это не совсем совместимо с объектным подходом MongoDB. Просто кажется несколько неэффективным отправлять тысячи команд, когда одна из них будет выполняться, особенно если БД находится на отдельном сервере.

Ответы [ 3 ]

1 голос
/ 22 августа 2011

Да, низкоуровневый интерфейс поддерживает такие вещи, как:

db.nonsense.update({a: 'a'}, {$set: {b: 'X'}}, false, true);

И это похоже на SQL:

update nonsense
set b = 'X'
where a = 'a'

Вам понадобится последний параметр ( multi ), чтобы быть true, или вы не будете обновлять все соответствующие записи.

Это может быть полезно:

http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+Chart

1 голос
/ 22 августа 2011

Массовые вставки будут доступны в будущей версии, запланированной на данный момент для версии 2.1, см .:

В большинстве языковых драйверов уже реализована собственная групповая / пакетная вставка.

0 голосов
/ 22 августа 2011

Да.В java это выглядит так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...