mongo.db更新日期字段,可能有也可能没有值

时间:2018-05-29 17:11:41

标签: javascript mongodb

  • 我有一个包含日期字段updated_at的mongoDB。
  • 此字段可能或可能具有值。

现在,我想运行一个mongoDB update查询:

  • 应更新updated_at < someDate
  • 所有文件
  • 应更新updated_at is not present
  • 所有文件

在测试javascript中,我发现日期比较undefined变量不会产生预期结果。因此,我问这个问题。

1 个答案:

答案 0 :(得分:1)

假设您有以下文件:

1-4

假设您要更新文档db.col.update({ $or: [ { updated_at: { $lt: ISODate("2018-06-01T00:00:00.000Z") } }, { updated_at: { $not: { $type: 9 } } } ] }, { $set: { updated_at: ISODate("2018-06-01T00:00:00.000Z") } }, { multi: true }) ,可以使用以下更新:

$lt

它只是检查Date条件中定义的日期,并使用$type来包含类型不是db=# grant select on user_table to ro; GRANT Time: 24.374 ms db=# set role ro; SET Time: 0.305 ms db=> select * from user_table; username | idx ----------+----- 1 | 1 2 | 2 (2 rows) Time: 10.557 ms db=> set my.idx = 1; SET Time: 8.595 ms db=> select * from user_table; username | idx ----------+----- 1 | 1 (1 row) 的所有文档。