0
をフィールドの数を数えます。私はユーザーのコレクションからユーザーID 57b83ae9faa76bac338b4579のbadge_slug = 100_clubを持つすべてのバッジを数えたいと思います。私がやっていることのMongoDB PHP:以下<a href="https://github.com/intekhabrizvi/Codeigniter-mongo-library" rel="nofollow">https://github.com/intekhabrizvi/Codeigniter-mongo-library</a></p> <p>は私のコレクション「ユーザー」であるMongoDBのライブラリと私はCodeIgniterのを使用していたサブ文書に
{
"_id" : ObjectId("57b83ae9faa76bac338b4579"),
"displayname" : "test",
"email" : "[email protected]",
"badges" : [
{
"awarded_at" : ISODate("2015-04-21T05:52:06Z"),
"object_id" : "",
"badge_slug" : "100_club"
},
{
"awarded_at" : ISODate("2015-04-21T06:12:14Z"),
"object_id" : "",
"badge_slug" : "100_club"
},
{
"awarded_at" : ISODate("2015-04-21T07:09:55Z"),
"object_id" : "",
"badge_slug" : "reader"
}
]
}
は
$ops = array(
array(
"$project" => array(
"count" => array(
"$size" => array(
"$filter" => array(
"input" => "$badges",
"as" => "badge",
"cond" => array("$eq" => => array("$$badge.badge_slug", "100_club"))
)
)
)
)
),
array(
"$group" => array(
"_id" => null,
"total" => array("$sum" => "$count")
)
)
);
$this->mongo_db->aggregate("users", $ops);
だから結果が与えられた文書のための2をあるべきです。 しかし、すべてのユーザーのカウントが返されます。ユーザーIDの条件はどこで行う必要がありますか?