【问题标题】:Sort deeply nested data extracted using mongoose filter使用猫鼬过滤器对提取的深度嵌套数据进行排序
【发布时间】:2018-02-10 18:18:22
【问题描述】:

我使用猫鼬过滤器来获取嵌套在 MongoDB 文档中的数据。如何对结果进行排序,目前用于提取数据的方法是否足够有效(如果没有,请提出一些解决方案或资源来研究)?

User.findOne({
UserID: SomeID
}, (err, user) => {
userData = user.userData.filter(userData => {
  if (userData.Time.getTime() >= startTime && userData.Time.getTime() <= endTime) {
    return userData;
  }
});

res.json(userData);

});

如何在 MongoDB 中按日期对结果(userData)进行排序?

【问题讨论】:

  • 你能发布一个示例用户数据和预期结果吗?

标签: node.js mongodb sorting mongoose


【解决方案1】:

相反,您是根据某个日期过滤数据。您可以执行以下操作 在 Mongodb 中也是一样的,因为 Mongodb 是用 C++ 编写的,所以速度要快得多 按性能

User.findOne({
        $and: [{
            UserID: SomeID
        }, {
            startDate: {
                $lte: new Date()
            }
        }, {
            endDate: {
                $gte: new Date()
            }
        }]
    }, {}, {
        lean: true,
        sort: {
            startDate: -1 //Sort by Date Added DESC
        }
    }(err, user) => {
        err ? res.json(err) : res.json(user);
    });

【讨论】:

  • UserData 是嵌套的。 {用户:[ {userData:[{time:Something}] }] }。这只是一个示例。真实数据甚至进一步嵌套。这是我使用它的唯一原因。可以直接在mongodb中做吗?
猜你喜欢
  • 2014-03-10
  • 2020-11-05
  • 2015-02-09
  • 1970-01-01
  • 2013-12-03
  • 2021-10-02
  • 1970-01-01
  • 2021-04-18
  • 2021-11-07
相关资源
最近更新 更多