【问题标题】:How to update multiple rows with different values in a single execution in mongodb?如何在mongodb的一次执行中更新具有不同值的多行?
【发布时间】:2019-07-19 20:46:06
【问题描述】:

我们知道,在 mysql 中,我们可以在 1> 和 2 中给出的单个执行中执行相同的操作,而不是执行 3 次以下查询>

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 中做同样的事情(在一次执行中更新具有不同值的多行)?

【问题讨论】:

    标签: mongodb mongoose mongodb-query


    【解决方案1】:

    在具有相同条件或查询的 mongo 中,您可以通过将 '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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多