我在MongoDb中有2个收藏集,然后说:
Collection1
[ {"Name" : "foo1", "Place" : "bar1", "Rank" : 1},
{"Name" : "foo2", "Place" : "bar2", "Rank" : 2},
{"Name" : "foo3", "Place" : "bar3", "Rank" : 3} ]
Collection2
[ {"DocNo" : "One",
"DocArray" : [{"Name" : "ABC", "Number" : 1},
{"Name" : "DEF", "Number" : 2},
{"Name" : "XYZ", "Number" : 4}]},
{"DocNo" : "Two",
"DocArray" : [{"Name" : "JKL", "Number" : 5},
{"Name" : "GHI", "Number" : 1},
{"Name" : "UVW", "Number" : 3}]}
]
我需要在 Collection1 中写一个查询,其中我有DocNO
才能从 Collection2 中进行搜索,并且仅返回 Collection1中的那些文档,其中Rank
字段与该特定文档Number
内所有元素的所有DocArray
字段匹配。
在此示例中,如果我有DocNo = "Two"
,则返回的数组将如下所示:
[ {"Name" : "foo1", "Place" : "bar1", "Rank" : 1},
{"Name" : "foo3", "Place" : "bar3", "Rank" : 3}]
我需要在单个mongo查询中完成所有这些操作
答案 0 :(得分:0)
您的要求:
我需要在Collection1中写一个查询
但是我要说的是,您需要在IQR = stats.iqr(data, interpolation = 'midpoint')
上开始此聚合,并在Collection 2
上使用$lookup
阶段
查询:
Collection 1
测试: mongoplayground