Как обновить несколько строк с разными значениями в одном исполнении в mongodb? - PullRequest
0 голосов
/ 26 февраля 2019

Мы знаем, что в mysql вместо того, чтобы выполнять приведенные ниже запросы 3 раза, мы можем сделать то же самое в одном освобождении, указанном в 1> и 2>

UPDATE feedbacks SET _id = '5c6a8bcfce1454086fefb879' WHERE user_rol = '26-02-2018';  
UPDATE feedbacks SET _id = '5c6a89d3ce1454086fefb877' WHERE user_rol = '26-02-2017'; 
UPDATE feedbacks SET _id = '5c6a896ece1454086fefb876' WHERE user_rol = '26-02-2016'; 

1>

INSERT INTO feedbacks (_id, added_on) 
VALUES 
    ('5c6a8bcfce1454086fefb879', '26-02-2018'),
    ('5c6a89d3ce1454086fefb877', '26-02-2017'),
    ('5c6a896ece1454086fefb876', '26-02-2016')
ON DUPLICATE KEY UPDATE added_on = VALUES(added_on)

2>

UPDATE feedbacks
    SET added_on = CASE 
        WHEN _id = '5c6a8bcfce1454086fefb879' THEN '26-02-2018'
        WHEN _id = '5c6a89d3ce1454086fefb877' THEN '26-02-2017'
        WHEN _id = '5c6a896ece1454086fefb876' THEN '26-02-2016'
    END
WHERE _id IN ('5c6a8bcfce1454086fefb879', '5c6a89d3ce1454086fefb877', '5c6a896ece1454086fefb876')

Теперь мой вопрос: можем ли мы сделать то же самое (обновить несколько строк с разными значениями в одном выполнении) в mongodb?

1 Ответ

0 голосов
/ 26 февраля 2019

В монго с тем же условием или запросом вы можете обновить несколько записей, установив флаг 'multi' в значение true.Пожалуйста, обратитесь по ссылке.https://docs.mongodb.com/manual/reference/method/db.collection.update/

Но, условия другие, это не сработает.

Для массового обновления вы можете обратиться: https://docs.mongodb.com/manual/reference/method/Bulk.find.update/#Bulk.find.update

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