好的我有两个收藏集,父母和孩子。 父集合可以有多个子文档。
现在我希望能够通过它自己的字段以及它的父字段来对ChildCollection文档进行排序。这可能吗?是的,我可以把它放在一个大集合中,但这将是很多冗余。这将是数百万条记录,因此可以在服务器上做得越多越好。
ParentCollection
_id : "parentid1"
field1 : "val1"
field2 : "val2"
fieldx.......
ChildCollection
_id : "childid1"
_parentid: "parentid1"
field1 : "val3"
field2 : "val4"
fieldx.........
答案 0 :(得分:2)
要对父集合字段中的子集合进行排序,您应该将要排序的父字段放入每个子集中。没有其他方法可以做到这一点。当您更新父文档时,您将需要更新所有子项中的这些字段。 Mongodb喜欢非规范化,所以不关心这一点。另外,为了提高父字段更新的速度,您可以使子更新异步。
答案 1 :(得分:0)
有一种解决方法。
通过使用$sort
,我能够对子集合进行排序。我将相同的代码返回给Java List
,并使用Collections.sort(List<T>);
和VOILA实现父集合的排序!