Я пытаюсь обновить документы коллекции sale_order, если sale_order['orderId']
существует в temp_sale_order
. Если он не существует в temp_sale_order
, тогда новый документ будет создан в sale_order
. (Upsert).Как использовать для цикла с обновлением mongodb
Но он создает только один документ.
Если я использую find
вместо findOne
. он выдает ошибку:
Ошибка:
uncaught exception: can't save a DBQuery object
Мой запрос:
db.getCollection('sale_order').update(
db.getCollection('sale_order').find({},{orderId:1}),
db.getCollection('temp_sale_order').findOne({},{orderId:1}),{upsert:true});
, что это правильный путь? Также как написать и использовать функцию в mongodb с вышеуказанным запросом?
Это говорит 'мульти обновление работает только с $ operators'. Я читал об этом, но не мог понять, как использовать его с моим запросом. –
У вас есть доступ к mongoshell для этого? – codename44
Я использую mongodb на локальном сервере и использую robomongo для ide. Я использую этот запрос от robomongo –