配列値 (!) 状態属性を持つユーザーのコレクションがあります。
ロックされたユーザーを簡単に見つけることができます
db.users.find({'state' : 'locked'})
条件が状態配列を「調べる」ためです。
ただし、集計フレームワークのコンテキストでこれが必要であり、そこで機能させることができません。これが私の非機能的な試みの1つです:
db.users.aggregate({
'$group' : {
'_id' : { '$cond' : [{'$eq' : ['$state', 'locked']},
'locked',
'not_locked']
},
'count' : { '$sum' : 1 }
}
})
IOW、状態配列内の要素の存在に基づいてグループ _id を生成したいと考えています。