问个mongoose查询的问题

发布于 2022-08-30 16:00:48 字数 253 浏览 9 评论 0

我在开发中遇到一个问题。大概情况是这样的。
我需要查询一个月的数据,前端需要的返回的数据格式是这样的:

[
  "2014-11-08":[
     {数据2},{数据2},  ....  
  ],
  "2014-11-09":[
     {数据2},{数据2},{数据3}  ....  
  ]
]

就是相同的日期能够进行归类,只能手动拼这种格式出来么?有没有更加灵活的办法,求大神指点....^_^

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

憧憬巴黎街头的黎明 2022-09-06 16:00:48

Model#aggregate 可以很大程度的简化你的代码(当然,是以牺牲 mongodb 性能为代价的)。

var dataSchema = mongoose.Schema({
    date: String, // 日期字符串
    value: {}     // 里面放着需要的数据
});

var Data = mongoose.model('Data', dataSchema);
Data.aggregate([
    { $match: { /* 查询条件 */ } },
    { $group: {
        _id: "$date",
        values: { $push: "$value" }
    }}
], function(err, results) {
    if (err) { /* 错误处理 */ }

    // 返回的格式是
    //   [
    //     { _id: "2014-11-08", values: [ {数据1}, {数据2} ] },
    //     ...
    //   ]
    res.send(results);
});
窗影残 2022-09-06 16:00:48

group是用来做聚合的,不是做查询后分组用的。你的这种情况,最好的方式还就是手动拼出这个对象的结构。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文