如何查询特定值之间的所有项目?(MongoDB、NodeJS)



我有这样的数据库集合:

{
data: [
item: {
date: "2022-03-22T08:10:37.023Z"
},
item: {
date: "2022-03-22T08:11:04.023Z"
},
...
]
}

我还有变量start_dateend_date,它们是momentjs日期。我可以用isAfter()isBefore()方法比较日期。

如何获取日期在start_dateend_date之间的所有项目?

注意:date: "..."string,而不是ISODate对象。

CCD_ 11是一个数组。

我还可以将日期string转换为momentjs进行比较。

  1. 看起来您的date是ISO格式的,因此当前构造函数应该接受它,例如
moment(date);

要证明它,请将其转换为一个普通的jsDate对象,并将其打印为

moment("2022-03-22T08:11:04.023Z").toDate()
// Tue Mar 22 2022 10:11:04 GMT+0200 (Israel Standard Time)
  1. 您可能需要查看isBetween
moment(date).isBetween(start_date, end_date);

如果date在这两个时刻之间,则返回true。

  1. 之后,您可以使用类似.filter的东西来删除不在您的范围内的数据项,仅此而已

最新更新