对不起,这听起来像个愚蠢的问题,但我是mongoDB的新手,我找不到解决方案。
我想从一个集合中获得一个确定数量(n)的“高级”对象,以及另一个没有“高级”的元素的确定数量(m)。这两种元素都存储在同一个集合中,并且它们有一个名为“premium”的布尔字段。它们也是地理定位的(2d索引阵列),我希望按距离排序,然后按溢价/非溢价(按此重要性顺序排列)。
不知道我是否遗失了什么,很抱歉打扰。
提前致谢。
答案 0 :(得分:0)
您不能在一个中进行两个查询。您必须运行两个查询并对每个查询使用限制,然后将它们组合到您的应用程序中。
或者,您运行一个没有“premium”和“non-premium”谓词的查询,并在您的应用程序中拆分。您可能不得不高估项目数量,以便在结果中有足够的高级和非高级文档。
当您按距离排序时,我会发现除非您必须拥有完全相同位置的文档,否则您将不可能有两个文档具有相同的距离,因此对“premium”进行二级排序不太可能是必要的。