Mongoose:如何更新符合条件的*所有*人? [复制]

Posted

技术标签:

【中文标题】Mongoose:如何更新符合条件的*所有*人? [复制]【英文标题】:Mongoose: how to update *all* persons matching a condition? [duplicate] 【发布时间】:2015-12-25 13:57:45 【问题描述】:

我做过这样的事情(请原谅我这个例子的愚蠢...... :-):

var dateRef = new Date(1990, 1, 1);
Person
  .where('dateOfBirth').gte(dateRef)
  .update( $set:  isYoung: true  , function (err, count) 
  )
;

即:对于出生日期 (dateOfBirth) 晚于参考日期的每个 Person 文档,我想将其设置为 true 字段 isYoung

我的代码仅适用于 一个 人,即使(当前)许多文档确实符合条件(所有年轻人,在这里... :-)。

有什么线索吗?


P.S.:作为奖励,如果可能的话,我想将 not - 匹配人员 isYoung 字段也设置为 false...

【问题讨论】:

【参考方案1】:

您应该在更新中使用multi:true 来更新多个文档,例如:

var dateRef = new Date(1990, 1, 1);
Person
  .where('dateOfBirth').gte(dateRef)
  .update( $set:  isYoung: true  ,multi: true, function (err, count) 
  );

【讨论】:

对我不起作用。调用 Person.update(...) 见***.com/questions/33876655/…

以上是关于Mongoose:如何更新符合条件的*所有*人? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

mongoose 删除 API

sql中如何更新符合条件的值

sql中如何更新符合条件的值

返回的对象具有符合 Mongoose 条件的嵌套值

Mongoose:批量更新插入,但仅在满足某些条件时才更新记录

具有多个条件的 Mongoose updateMany() 返回 0