猫鼬中的updateMany不会更新属性

时间:2020-02-03 23:46:07

标签: mongodb mongoose

由于某种原因,我无法使用猫鼬(5.8.10)中的updateMany更新文档中的属性。这是我的查询:

Booking.updateMany({ sessionId }, { "isPaid": true } );

开头sessionId以上的文档将isPaid标志设置为false。现在,我想在所有这些文档中将此标志切换为false。但是,这不会更新属性。

2 个答案:

答案 0 :(得分:0)

看来没有回调就无法正常工作

      Booking.updateMany({ sessionId }, { "isPaid": true }, null, (error, res) => {
        if(error) {
          console.log("Something went wrong when updating data!");
        }
      });

答案 1 :(得分:0)

问题是Booking.updateMany({ sessionId }, { "isPaid": true } );不执行对数据库的请求。这是一个随时可以执行的查询。您可以通过将回调作为第三个参数传递或使用.then()语法来实现。

回调变体:

Booking.updateMany({ sessionId }, { "isPaid": true }, (err, data) => {
...
});

然后变体:

Booking.updateMany({ sessionId }, { "isPaid": true })
.then(data => {})
.catch(err => {})

来源:(doc)