用猫鼬和日期查询

dys*_*ria 20 mongoose mongodb node.js

我正在尝试找出如何使用mongoose进行特定查询.我有mongodb这样的东西:

{ "_id" : 1, "modificationDate" : ISODate("2013-06-26T18:57:30.012Z") }
{ "_id" : 2, "modificationDate" : ISODate("2013-06-26T18:57:35.012Z") }
Run Code Online (Sandbox Code Playgroud)

我想获得实际日期和modificationDate之间的差异大于5天的所有对象.

Joh*_*yHK 40

计算5天的截止时间,然后find使用$lt运算符和计算的截止值执行:

var cutoff = new Date();
cutoff.setDate(cutoff.getDate()-5);
MyModel.find({modificationDate: {$lt: cutoff}}, function (err, docs) { ... });
Run Code Online (Sandbox Code Playgroud)

  • 其他比较运算符:参见:http://docs.mongodb.org/manual/reference/operator/query-comparison/ (3认同)

Emi*_*era 10

如果需要在两个日期之间查询,可以使用 $gte = 大于等于和 $lte = 小于等于,日期格式为“YYYY-MM-DD”进行查询

const results = await MyModel.find(
  {
    date: {
      $gte: "2021-01-20",
      $lte: "2021-02-15",
    }
  }
)
Run Code Online (Sandbox Code Playgroud)

此示例将查询 2021 年 1 月 20 日至 2021 年 2 月 15 日之间的 MyModel。

参考: https: //mongoosejs.com/docs/tutorials/dates.html