javascript - mongo.db 更新可能有值或没有值的日期字段

标签 javascript mongodb

  • 我有一个 mongoDB,其中包含日期字段 updated_at .
  • 此字段可能有值,也可能没有值。

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

  • 应更新 updated_at < someDate 的所有文档
  • 应更新 updated_at is not present 的所有文档.

在测试 JavaScript 中,我发现日期比较undefined变量不会产生预期的结果。所以我才问这个问题。

最佳答案

假设您有如下文档:

db.col.save({});
db.col.save({ updated_at: null });
db.col.save({ updated_at: undefined });
db.col.save({ updated_at: ISODate("2018-05-29T00:00:00.000Z") });
db.col.save({ updated_at: ISODate("2018-06-02T00:00:00.000Z") });

假设您要更新文档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 条件并使用 $type包含类型不是 Date 的所有文档。

关于javascript - mongo.db 更新可能有值或没有值的日期字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50589623/

相关文章:

javascript - Raphael.js,如何选择一个元素?

javascript - 将文本插入/粘贴到事件窗口中?

mongodb连接失败,通过mac端口安装

mysql - node.js/express/mongodb 而不是 apache/mysql?

javascript - Angular .js : directive object in scope is always undefined

javascript - 如何将 Controller 中的指令绑定(bind)到 HTML 中?

mongodb - 安装了 MongoDB 的共享主机

ruby - 连字符键名称上的 MongoMapper 语法错误

mongodb - OData Jaydata - odata 更新请求返回错误 404(SAPUI5,节点)

javascript - 跟进: Preloading images throws undefined error