我在spring-mongo查询中有一个场景。 Mongo版本为3.2
应用程序有两个集合(集合A和集合B)。
**Sample contents**
Collection A :: {"_id":1, "name":"content 1"}...{"_id":100, "name":"content 100"}
Collection B :: {"_id":1, "name":"parent 1", "a":[1,2,58,67]}
{"_id":2, "name":"parent 2", "a":[2,85,96,99]}
集合B将集合A的引用ID保存为数组。
情境: 我将过去收集A的ID列表到查询:我需要获取集合A的ID列表,这些列表在集合B中的任何位置都没有关联。 如何实现这个目标?
答案 0 :(得分:1)
我计划继续使用以下查询进行聚合。查找 preserveNullAndEmptyArrays可以节省我的一天。
it "populates an array of books" do
book = FactoryGirl.create(:book)
get :index
expect(:books).to eql([book])
end
答案 1 :(得分:0)
可以使用以下方法完成
1)在集合B中找到唯一ID,它们在数组“a”中:[]
2)在集合A中执行查找查询 - 在查询查询中使用$nin并传递从集合“a”中获取的所有ID:[]来自集合B
注意:如果您需要在两个集合之间找到匹配的文档,那么您可以使用$ lookup,它就像左外连接一样。