相关疑难解决方法(0)

如何在MongoDB中按季度分组日期

我有一个包含日期的文件,我想按季度分组文件.我怎么能在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)

mongoose mongodb-query

10
推荐指数
2
解决办法
2338
查看次数

Rails&Mongoid独特的结果

考虑下面的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)

谢谢

database ruby-on-rails distinct mongodb

3
推荐指数
1
解决办法
3203
查看次数