我有一个包含日期的文件,我想按季度分组文件.我怎么能在MongoDB中做到这一点?
我的架构是:
var ekgsanswermodel = new mongoose.Schema({
userId: {type: Schema.Types.ObjectId},
topicId : {type: Schema.Types.ObjectId},
ekgId : {type: Schema.Types.ObjectId},
answerSubmitted :{type: Number},
dateAttempted : { type: Date},
title : {type: String},
submissionSessionId : {type: String}
});
Run Code Online (Sandbox Code Playgroud)
第一季度包含第1,2,3个月.第二季度包含第4季度,第5季度,第6季度等第4季度.我的最终答案应该是:
"result" : [
{
_id: {
quater:
},
_id: {
quater:
},
_id: {
quater:
},
_id: {
quater:
}
}
Run Code Online (Sandbox Code Playgroud) 考虑下面的mongo集合示例:
{"_id" : ObjectId("4f304818884672067f000001"), "hash" : {"call_id" : "1234"}, "something" : "AAA"}
{"_id" : ObjectId("4f304818884672067f000002"), "hash" : {"call_id" : "1234"}, "something" : "BBB"}
{"_id" : ObjectId("4f304818884672067f000003"), "hash" : {"call_id" : "1234"}, "something" : "CCC"}
{"_id" : ObjectId("4f304818884672067f000004"), "hash" : {"call_id" : "5555"}, "something" : "DDD"}
{"_id" : ObjectId("4f304818884672067f000005"), "hash" : {"call_id" : "5555"}, "something" : "CCC"}
Run Code Online (Sandbox Code Playgroud)
我想查询这个集合,只得到每个"call_id"的第一个条目,换句话说,我试图获得基于"call_id"的唯一结果.我尝试使用.distinct方法:
@result = Myobject.all.distinct('hash.call_id')
Run Code Online (Sandbox Code Playgroud)
但结果数组将只包含唯一的call_id字段:
["1234", "5555"]
Run Code Online (Sandbox Code Playgroud)
我也需要所有其他领域.是否可以像这样进行查询?:
@result = Myobject.where('hash.call_id' => Myobject.all.distinct('hash.call_id'))
Run Code Online (Sandbox Code Playgroud)
谢谢