db.users.aggregate(
{$match :
{"_id" : ObjectId("50f69176904e1d66affec20d")}
},
{$unwind : "$connections"},
{$match :
{$or : [
{"connections.users" : {$exists : false}},
{"connections.users.id" : "50f651b8b58bba7fbec2f223"}
]}},
{$group : {_id : "$connections.group"}}
)
这里我找到了特定用户所在的组名。我在mongodb shell中得到了正确的结果。现在我必须在锂框架中使用它。请帮我一下这个命令。 有关集合结构,请参阅以下链接:http://pastebin.com/P8uMw9cj
答案 0 :(得分: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,可以帮助您开始使用。
答案 1 :(得分:0)
你应该阅读Tom Maiaroto的文章"MongoDB Aggregation of all Shapes and Sizes"
它涵盖了Map / Reduce,Grouping和New Aggregation Framework