如何在条件中得到N个结果,在mongodb中得到另一个条件的M结果

时间:2013-02-05 01:14:22

标签: php mongodb

对不起,这听起来像个愚蠢的问题,但我是mongoDB的新手,我找不到解决方案。

我想从一个集合中获得一个确定数量(n)的“高级”对象,以及另一个没有“高级”的元素的确定数量(m)。这两种元素都存储在同一个集合中,并且它们有一个名为“premium”的布尔字段。它们也是地理定位的(2d索引阵列),我希望按距离排序,然后按溢价/非溢价(按此重要性顺序排列)。

不知道我是否遗失了什么,很抱歉打扰。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您不能在一个中进行两个查询。您必须运行两个查询并对每个查询使用限制,然后将它们组合到您的应用程序中。

或者,您运行一个没有“premium”和“non-premium”谓词的查询,并在您的应用程序中拆分。您可能不得不高估项目数量,以便在结果中有足够的高级和非高级文档。

当您按距离排序时,我会发现除非您必须拥有完全相同位置的文档,否则您将不可能有两个文档具有相同的距离,因此对“premium”进行二级排序不太可能是必要的。