gpt4 book ai didi

node.js - 如何使用聚合函数计算mongoDB中的唯一数据

转载 作者:太空宇宙 更新时间:2023-11-04 01:59:43 25 4
gpt4 key购买 nike

这是输入 JSON 数据,像这样存储在 mongoDB 中

输入

[{
'name' : 'user1',
'date' : '23/09/2017',
'deviceType' : 'Android'
},
{
'name' : 'user2',
'date' : '24/09/2017',
'deviceType' :'ios'
},
{
'name' : 'user1',
'date' : '23/09/2017',
'deviceType' :'ios'
},
{
'name' : 'user2',
'date' : '23/09/2017',
'deviceType' :'ios'
},
{
'name' : 'user1',
'date' : '24/09/2017',
'deviceType' :'ios'
},
{
'name' : 'user2',
'date' : '25/09/2017',
'deviceType' :'Android'
}
]

输出为

输出

   [{
'date' : '23/09/2017',
'iosCount': 2,
'androidCount':1
},
{
'date' : '24/09/2017',
'iosCount': 2,
'androidCount':0
},
{
'date' : '25/09/2017',
'iosCount': 0,
'androidCount':1
}
]

我使用聚合函数来执行任务。假设集合名称是 users 那么。

db.users.aggregate([{'$group':{
'_id':{'date':'$date','name':'$name'},
'count':{'$sum' :1}
}
}])

此聚合函数的输出未返回适当的结果。

Let us explain more I am intrested only date suppose 23/08/2017 how many users are there and which type of device they have used either ios or android not count of device. let's say example like

If date "23/09/2017" has input data like

[{'name' : 'user1','date' : '23/09/2017','deviceType' : 'Android'},

{'name' : 'user1','date' : '23/09/2017','deviceType' :'ios'},

{'name' : 'user1','date' : '23/09/2017','deviceType' : 'Android'},

{'name' : 'user2','date': '23/09/2017','deviceType':'ios'}]

output

[{'date' : 23/09/2017, totalIos : 2, totalAndroid: 1}]

最佳答案

$sum 要求您告诉它要求和的内容。这是您期望的输出吗:

db.users.aggregate([{'$group': {'_id': {'date':'$date','name':'$name'}, 'count': {'$sum': 1}}}])

{ "_id" : { "date" : "24/09/2017", "name" : "user1" }, "count" : 1 }
{ "_id" : { "date" : "23/09/2017", "name" : "user2" }, "count" : 1 }
{ "_id" : { "date" : "24/09/2017", "name" : "user2" }, "count" : 1 }
{ "_id" : { "date" : "25/09/2017", "name" : "user2" }, "count" : 1 }
{ "_id" : { "date" : "23/09/2017", "name" : "user1" }, "count" : 2 }

关于node.js - 如何使用聚合函数计算mongoDB中的唯一数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46499136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com