我有一个包含类似于以下格式的文档的集合:{departure:{name:"abe"},arrival:{name:"tom"}},{departure:{name:"bob"},arrival:{name:"abe"}}然后得到这样的输出:{name:"abe",departureCount:1,arrivalCount:1},{name:"bob",departureCount:1,arrivalCount:0},{name:"tom",departureCount:0,arrivalCount:1}我可以像这样查询特定数据来单独获取计数:db.sched.aggregate([{
我有一个名为“listing”的集合,其中包含metadata和status等字段。metadata是一个包含user对象的对象,status是一个字符串。结构看起来是这样的,{"status":"Active","metadata":{"user":{"urlProfile":"","averageRating":5,"reviewCount":2,"userId":"1244324"}}}现在,状态字段具有诸如"Active"和"Inactive"之类的值。我需要按这些状态分组并按userId进行过滤。所以我在助手内部有一个函数,如下所示,query:function(model,
通过阅读那里的各种文章,我相信这应该是可能的,但我不确定从哪里开始。这就是我想要做的:我想运行一个查询,它会找到在过去一小时内创建的所有文档,并按分钟对所有文档进行分组,并且由于每个文档都有一个tweet值,例如5、6或19,所以将它们加起来每分钟都提供一个总和。这是该集合的示例:{"createdAt":{"$date":1385064947832},"updatedAt":null,"tweets":47,"id":"06E72EBD-D6F4-42B6-B79B-DB700CCD4E3F","_id":"06E72EBD-D6F4-42B6-B79B-DB700CCD4E3F"}
我正在寻找一种获取此类数据的方法{"_id":5,"count":1,"arr":["aga","dd","a"]},{"_id":6,"count":4,"arr":["aga","ysdf"]},{"_id":7,"count":4,"arr":["sad","aga"]}我想根据arr的第一项(索引)对计数求和。在另一个聚合中,我想对arr数组中的第一个和第二个项目执行相同的操作。我试过使用unwind,但这会破坏数据,然后层次结构就会丢失。我也试过用$group:{_id:{arr_0:'$arr.0'},total:{$sum:'$count'}}但结果是空白数组
这个问题在这里已经有了答案:Groupresultby15minutestimeintervalinMongoDb(7个答案)关闭5年前。我正在使用nodejs和mongodb作为数据库我的文件是:{"_id":"58466d6a0b3f4d2e2fa22905","updatedAt":"2016-12-06T07:48:58.435Z","createdAt":"2017-12-06T07:48:58.435Z","userId":"56d04e265a2100c72a311334","__v":0}用户将在客户端给出fromDate、toDate和frequency,其中freq
MongoDB3.4集合将包含时间戳的传感器信息存储为ISODate字段。无论是在白天还是晚上,传感器信息都需要进行不同的处理,其中晚上表示>=20.00(晚上8点)和$hour检查测量值是白天还是晚上。根据要求,夜间的所有测量都属于夜晚开始的日期,即21.00的测量日期适合,而需要从03.00的测量中减去一天。我想对所有night测量进行汇总($match步骤过滤掉全天测量,这不是问题)并按日期分组夜晚。你知道我该怎么做吗?我考虑过使用$project步骤并获取时间信息,但不确定如何生成可用于组操作的有效_id。 最佳答案 过滤部
这是我的文档,{"_id":"58aecaa3758fbff4176db088","actualEndDate":"2017-02-27T00:00:00.000Z","Details":[{"projectId":"58a585f6758fbff4176dadb9",}]},{"_id":"58aecac8758fbff4176db08b","actualEndDate":"2017-03-12T00:00:00.000Z","Details":[{"projectId":"58a585f6758fbff4176dadb9",}]},{"_id":"58aecac8758fbff41
假设我想通过Description字段对MongoDb中的文档进行聚合和分组。运行以下命令(默认区分大小写):db['Products'].aggregate({$group:{_id:{'Description':"$Description"},count:{$sum:1},docs:{$push:"$_id"}}},{$match:{count:{$gt:1}}});在我的示例数据上,我得到了1000个结果,这很好。但现在我希望运行不区分大小写查询(使用$toLower)应该给我少于或等于1000个结果:db['Products'].aggregate({$group:{_id:{
数据库中的文件格式如下{product:'product1',state:'state1',nondnd:[1,2,3],dnd:[4,5],land:[],emails:['a','b','c']},{product:'product1',state:'state1',nondnd:[9,8,2],dnd:[10,7,11],land:[2,4,6,8],emails:['d']},{product:'product1',state:'state2',nondnd:[9,8,2],dnd:[10,7,11],land:[1,3],emails:['e','g']}我需要根据产品和状态
这个问题在这里已经有了答案:MongoDbHowtogroupbymonthandyearfromstring(1个回答)关闭4年前。我有费用明细,我想在其中按月对费用进行分组,并返回月份和该特定月份的费用。我什至检查了Mongoose文档,以根据月份进行汇总,但我的数据不符合他们的标准,因为我正在保存日期,如12-Jan-2018.有什么方法可以让我获得当月的月份和总金额。我想要类似-Jan:50,Feb:45等等...下面是样本集{"_id":{"$oid":"5babee47a7d56e5fb896f181"},"date":"07-Sep-2018","expenseInfo"