【问题标题】:Fetching date from Mongodb database and Showing it in jade file从 Mongodb 数据库中获取日期并在玉文件中显示
【发布时间】:2015-06-08 17:15:40
【问题描述】:

我想从 MongoDB 数据库中获取所有日期,但我只想显示一次日期,这意味着日期不应重复,即按日、月和年分组。

var mongoose = require('mongoose');
var chatSchema = mongoose.Schema({
    nick: String,
    msg: String,
    created: {type: Date, default: Date.now}
});
var chat = mongoose.model('Message', chatSchema);
app.get('/history/chats', function(req, res){
    chat.find({group: "created"}, function(err, docs){
        res.render('history', {users: docs});
    });
});

在玉文件中

tbody
 each user in users
  tr
   td
    a(href='../info/chats') #{user.created.getMonth()}/#{user.created.getDate()}/#{user.created.getFullYear()}

使用“组”后,我没有得到所需的答案。 表示如果

【问题讨论】:

    标签: node.js mongodb express


    【解决方案1】:

    现在,该查询正在寻找group = "created" 的文档,它根本没有进行任何分组。因此,它没有找到任何文档。

    如果要按日/月/年分组,则需要使用 MongoDB aggregation framework

    其他一些资源:

    例如,要在 Mongoose 中按天分组,您需要编写如下代码:

    chat.aggregate([
      {
        $group: {
          day: { $dayOfYear: "$created" },
          count: { $sum: 1 }
        }
      }
    ], function (err, result) {
      // do stuff with your result
    });
    

    上面按一年中的日期计算文档的数量。如果您想获取按天分组的完整文档,请使用 $$ROOT 运算符。

    注意:建议在$group 之前使用$match 步骤,以尽量减少查询时间。

    【讨论】:

      猜你喜欢
      • 2015-08-20
      • 2016-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-29
      • 2018-06-17
      • 2012-05-27
      相关资源
      最近更新 更多