我想从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()}
使用'group'后,我没有得到所需的答案。 意味着是否
答案 0 :(得分:0)
现在查询正在寻找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
步骤,以最大限度地缩短查询时间。