MongoDBデータベース—実例まとめ
1598 ワード
本編では、いくつかの実例をまとめて、後に問題があったら補充するつもりです。
実例1:aggregate実現count(distinct field)
SQLでは、このような機能を実現するためには、count(distinct field)が必要であることを知っています。MongoDBには、重合関数count、distinctがありますが、aggregate重合配管操作にはこのような使い方がないので、他の方法を使ってこの機能を実現する必要があります。
1重合関数countとdistinct
集合中の各accountに使用される異なるventdor個数をカウントします。
MongoDB Agregation:Counting distinct fields
転載先:https://www.cnblogs.com/shaocf/p/11098720.html
実例1:aggregate実現count(distinct field)
SQLでは、このような機能を実現するためには、count(distinct field)が必要であることを知っています。MongoDBには、重合関数count、distinctがありますが、aggregate重合配管操作にはこのような使い方がないので、他の方法を使ってこの機能を実現する必要があります。
1重合関数countとdistinct
# count
db.collection.count()
#
db.collection.find().count()
# distinct
db.collection.distinct(field, query)
#
db.collection.distinct('user', {'age': {'$gt': 28}}); // age 28
2 aggregate配管操作でcount機能を実現集合中の各accountに使用される異なるventdor個数をカウントします。
#
{
{ _id: 1,
account: 'abc',
vendor: 'amazon'
},
{ _id: 2,
account: 'abc',
vendor: 'overstock'
},
{ _id: 3,
account: 'adf',
vendor: 'amazon'
}
}
#
db.collection.aggregate([
{ '$group': { '_id': { 'account': '$account', 'vendor': '$vendor'} },
'number': { '$sum': 1 }
},
{ '$group': { '_id': '$_id.account' },
'number': { '$sum': 1 }
}
])
#
[
{ '_id': 'abc', 'number': 2 },
{ '_id': 'adf', 'number': 1 }
]
参考資料MongoDB Agregation:Counting distinct fields
転載先:https://www.cnblogs.com/shaocf/p/11098720.html