mongodb - mongo db count differs from aggregate sum -


i have query , when validate see count command returns different results aggregate result.

i have array of sub-documents so:

{     ...     wished: [{'game':'dayz','appid':'1234'}, {'game':'half-life','appid':'1234'}]     ... } 

i trying query count of games in collection , return name along count of how many times found game name.

if go

db.user_info.count({'wished.game':'dayz'}) 

it returns 106 value and

db.user_info.aggregate([{'$unwind':'$wished'},{'$group':{'_id':'$wished.game','total':{'$sum':1}}},{'$sort':{'total':-1}}])  

returns 110

i don't understand why counts different. thing can think of has data being in array of sub-documents opposed being in array or in document.

the $unwind statement cause 1 user multiple wished games appear several users. imagine data:

{   _id: 1,  wished: [{game:'a'}, {game:'b'}] } {  _id: 2,  wished: [{game:'a'}, {game:'c'}, {game:'a'}] } 

the count can never more 2.

but same data, $unwind give 5 different documents. summing them give a:3, b:1, c:1.


Comments

Popular posts from this blog

ruby on rails - RuntimeError: Circular dependency detected while autoloading constant - ActiveAdmin.register Role -

c++ - OpenMP unpredictable overhead -

javascript - Wordpress slider, not displayed 100% width -