1
db.users.aggregate(
    {$match : 
        {"_id" : ObjectId("50f69176904e1d66affec20d")}
    }, 
    {$unwind : "$connections"}, 
    {$match : 
        {$or : [
            {"connections.users" : {$exists : false}}, 
            {"connections.users.id" : "50f651b8b58bba7fbec2f223"}
        ]}},
    {$group : {_id : "$connections.group"}}
)

ここでは、特定のユーザーが存在するグループ名を見つけています。mongodbシェルで正しい結果が得られています。今、私はそれをリチウムフレームワークで使用する必要があります。コマンドを手伝ってください。コレクションの構造については、次のリンクを参照してください:http: //pastebin.com/P8uMw9cj

4

2 に答える 2

1

次のような任意のコマンドを実行できます。

$files = Files::connection()->connection->command(array("geoNear" => "fs.files", "near" => $coords, "maxDistance" => 1));

明らかにUsers::connection()を使用しますが、マスターブランチにあるかどうかはわかりませんが、作業中の集計にもいくつかの改善があります。

https://github.com/jmikola/li3-mongodb-aggregation-demo/blob/master/app/controllers/DemoController.phpで、集約されたデモアプリを確認することもできます。

于 2013-02-05T05:52:10.817 に答える
0

TomMaiarotoの記事「すべての形状とサイズのMongoDB集約」を読む必要があります

Map / Reduce、グループ化、および新しい集約フレームワークについて説明します。

于 2013-01-28T16:06:58.713 に答える