在MongoDB中,当记录超过100条时,如何对2d索引的$ near查询进行排序?

机会

我有一个查询,用于$near将记录向下过滤到附近。然后应该将结果按一个单独的字段排序。但是,我遇到了一种记录丢失的情况,即使它们符合条件。

我怀疑这是由于$near2d索引一起使用具有100条记录限制的事实我认为正在发生的事情是地理空间排序首先发生,然后才将其应用于该结果的前100条记录。

反正有克服这种行为的方法吗?我可以不理会该类别,$near而将我自己的类别用作主要类别,还是可以绕过100条记录限制,以使我的类别适用于整个集合?

这是explain()我正在使用的查询中的:

db.properties.find({
  loc: { 
    $near: [-80.173366, 34.07868], 
    $maxDistance: 5 
 }}).sort({mls: -1}).explain()

{
    "cursor" : "GeoSearchCursor",
    "isMultiKey" : false,
    "n" : 100,
    "nscannedObjects" : 211,
    "nscanned" : 700,
    "nscannedObjectsAllPlans" : 211,
    "nscannedAllPlans" : 700,
    "scanAndOrder" : true,
    "indexOnly" : false,
    "nYields" : 1,
    "nChunkSkips" : 0,
    "millis" : 2,
    "indexBounds" : {

    },
    "server" : "slate:27017",
    "filterSet" : false
}
同行

前段时间我遇到了同样的问题,您可以使用聚合-$ match。我在hackaton上使用了以下代码片段。

db.kickstarter.aggregate(   
                            {'$match' : 
                                {geo2 :
                                    {$geoWithin :
                                        { $centerSphere :[[parseFloat(lng), parseFloat(lat) ], radius/6371 ] 
                                        }
                                    }
                                }
                            },
                            {$sort : {'pledged' : -1}},
                            {$limit : 1000}, //you can set your limit here
                            function(err, data){
                                if(err)console.log(err);
                            }
                        );

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在MongoDB中,如何对$ or或$ in查询进行排序?

来自分类Dev

根据数组索引对查询结果进行排序

来自分类Dev

如何对雄辩的子查询进行排序

来自分类Dev

如何对合并的查询集进行排序Django

来自分类Dev

如何对Linq查询分组结果进行排序

来自分类Dev

如何对雄辩的子查询进行排序

来自分类Dev

如何对多查询的结果进行排序?

来自分类Dev

在查询中对嵌套的时间戳进行排序

来自分类Dev

Rails 4 ShopifyAPI:如何对查询进行排序/排序?

来自分类Dev

如何通过mongoDB中函数的结果对查询结果进行排序

来自分类Dev

MongoDB:如何在更新之前对查询进行排序

来自分类Dev

MongoDB + Doctrine:如何按文本搜索分数对查询进行排序

来自分类Dev

如何使用我的SQL查询对表中的时间进行排序

来自分类Dev

如何根据列表值对查询中的元组列表进行排序?

来自分类Dev

如何在数据日志查询中对结果进行排序

来自分类Dev

Repast-如何对查询中的代理集进行排序?

来自分类Dev

如何使用通配符对查询中的存储桶聚合进行排序?

来自分类Dev

如何在Sequelize中对查询结果进行排序?

来自分类Dev

如何在MYSQL的SELECT查询中对行进行重新排序?

来自分类Dev

MongoDB中如何对索引进行排序?

来自分类Dev

MongoDB-对查询进行两次排序?

来自分类Dev

MongoDb查询,用于按值对文档进行排序

来自分类Dev

AtTask在API中的报表查询中对结果进行排序

来自分类Dev

如何根据匹配属性对弹性搜索查询进行排序?

来自分类Dev

如何使用两列对SQL查询进行排序?

来自分类Dev

如何按特定属性对ActiveRecord查询进行排序

来自分类Dev

Django-如何根据属性值对查询集进行排序

来自分类Dev

如何根据数组元素的顺序对查询结果进行排序?

来自分类Dev

如何按孙子属性对LINQ / Entity Framework查询进行排序

Related 相关文章

  1. 1

    在MongoDB中,如何对$ or或$ in查询进行排序?

  2. 2

    根据数组索引对查询结果进行排序

  3. 3

    如何对雄辩的子查询进行排序

  4. 4

    如何对合并的查询集进行排序Django

  5. 5

    如何对Linq查询分组结果进行排序

  6. 6

    如何对雄辩的子查询进行排序

  7. 7

    如何对多查询的结果进行排序?

  8. 8

    在查询中对嵌套的时间戳进行排序

  9. 9

    Rails 4 ShopifyAPI:如何对查询进行排序/排序?

  10. 10

    如何通过mongoDB中函数的结果对查询结果进行排序

  11. 11

    MongoDB:如何在更新之前对查询进行排序

  12. 12

    MongoDB + Doctrine:如何按文本搜索分数对查询进行排序

  13. 13

    如何使用我的SQL查询对表中的时间进行排序

  14. 14

    如何根据列表值对查询中的元组列表进行排序?

  15. 15

    如何在数据日志查询中对结果进行排序

  16. 16

    Repast-如何对查询中的代理集进行排序?

  17. 17

    如何使用通配符对查询中的存储桶聚合进行排序?

  18. 18

    如何在Sequelize中对查询结果进行排序?

  19. 19

    如何在MYSQL的SELECT查询中对行进行重新排序?

  20. 20

    MongoDB中如何对索引进行排序?

  21. 21

    MongoDB-对查询进行两次排序?

  22. 22

    MongoDb查询,用于按值对文档进行排序

  23. 23

    AtTask在API中的报表查询中对结果进行排序

  24. 24

    如何根据匹配属性对弹性搜索查询进行排序?

  25. 25

    如何使用两列对SQL查询进行排序?

  26. 26

    如何按特定属性对ActiveRecord查询进行排序

  27. 27

    Django-如何根据属性值对查询集进行排序

  28. 28

    如何根据数组元素的顺序对查询结果进行排序?

  29. 29

    如何按孙子属性对LINQ / Entity Framework查询进行排序

热门标签

归档