使用mongoose获取最近n天内的文档

ktecyv1j  于 2022-11-13  发布在  Go
关注(0)|答案(1)|浏览(159)

我有以下格式的MongoDB文档,它们代表一个位置:

{
  "_id": "632987336a2913f401318f82",
  "name": "1 Ave, Infinite Loop St",
  "timezone": "Europe/Paris",
  "location": {
    "lat": 48.858093,
    "lng": 2.294694
  },
  "detections": [
    {
      "approach": "North Bound",
      "class": "Person",
      "datetime": "05:00 pm",
      "lane": 3,
      "movement": "Through"
    },
    {
      "approach": "North Bound",
      "class": "Person",
      "datetime": "05:00 pm",
      "lane": 3,
      "movement": "Through"
    },
   // ...more detections
  ]
}

我知道我想获取的站点的_id,但我想做的是,当我获取这个站点时,我只需要使用detections对象中的datetime属性获取最近7天的检测。但是,我不确定如何使用mongoose来实现这一点。目前,我试图通过手动获取所有站点检测,然后自己过滤它们来实现这一点,但这是一个乏味的方法。目前,这是我如何获取站点检测:

const site = await SiteModel.findById(siteID);
const detections = site.detections;

这个answer说明了一种实现这个行为的方法,但它使用的是aggregate,在我的例子中,键嵌套在对象数组中。我是MongoDB的新手,所以任何帮助都是非常感谢的。+

4szc88ey

4szc88ey1#

1.您需要在“日期时间”字段中存储时间戳。
1.您可以使用$elemMatch从对象数组中筛选特定数据。

相关问题