Ruby on rails mongoid上的聚合有很多关系
我想在一个模型与其他模型有很多关系的地方进行聚合 我的文档是Ruby on rails mongoid上的聚合有很多关系,ruby-on-rails,ruby,mongodb,mongoid,aggregation-framework,Ruby On Rails,Ruby,Mongodb,Mongoid,Aggregation Framework,我想在一个模型与其他模型有很多关系的地方进行聚合 我的文档是A,它与B有很多关系 order_settlements = A.collection.aggregate( { "$match" => { } }, "$group" => { '_id' => { }, 'B' => { "$first" => "$B"}, } ) 我无法在B中获取任何内容
A
,它与B
有很多关系
order_settlements = A.collection.aggregate(
{
"$match" =>
{
}
},
"$group" => {
'_id' => {
},
'B' => { "$first" => "$B"},
}
)
我无法在B
中获取任何内容,它总是返回空的[]
我试着用“渴望加载”——
order_settlements = A.includes(:B).collection.aggregate(
{
"$match" =>
{
}
},
"$group" => {
'_id' => {
},
'B' => { "$first" => "$B"},
}
)
这也没用。是否可以与具有多个关系的对象进行聚合?请告诉我如何操作。您不能使用MongoDB“period”引用其他集合中的对象。“通过设计”只能访问一个集合。您所能做的最好的事情是首先查询“相关数据”(子项)中的“父项”指标(生成您的模型以适应此情况),然后将匹配的指标作为父项上的
$操作传递给匹配子项条件的文档(同样前提是您的模型存储子项\u id
值)。但无论使用何种语法或助手,都是两种不同的查询。@NeilLunn:是否可以使用“展开”呢?除非文档是“实际嵌入的”,这才是真正的问题所在。这里没有“连接”。@NeilLunn:使用“包含”怎么样;人们需要重复多少次?没有“连接”!不能在查询集合中不存在的查询中引用数据。任何“插件”或其他方法都只是“模拟”。MongoDB(这里使用的最终存储引擎)不这样做。