【问题标题】:MongoDB Geospatial Query Count Issue (Always 100)MongoDB 地理空间查询计数问题(始终为 100)
【发布时间】:2011-07-01 00:51:08
【问题描述】:

对于包含超过 100 个结果的地理空间查询,计数操作似乎存在问题。如果我运行以下查询,无论如何我仍然会得到 100。

db.locations.find({"loc":{$nearSphere:[50, 50]}}).limit(1000).count()

我了解使用“near”语法的查询的默认大小限制为 100,但您似乎无法返回超过 100。我做错了什么还是有解决方法?

【问题讨论】:

    标签: mongodb geospatial


    【解决方案1】:

    尝试“内部”而不是“附近”。 这对我有用,

    center = [50, 50];
    radius = 1/111.12; //convert it to KM.
    
    db.places.count({"loc" : {"$within" : {"$center" : [center, radius]}}})
    

    我在https://jira.mongodb.org/browse/SERVER-856找到了这个

    【讨论】:

    【解决方案2】:

    对于它的价值,即使为游标报告的计数是 100(不管您给查询提供什么限制,甚至是“10”),当您运行查询时,您实际上会得到“限制”数量的结果.

    这是他们声称没有损坏的问题的链接:

    希望有帮助!

    【讨论】:

      【解决方案3】:

      这不是 mongo 查询的问题。尝试使用 cursor.size() 而不是 cursor.count()。 Count 不考虑 size 的限制。因此,如果您使用 .size() 而不是 count() 您应该打印出正确数量的返回项目。

      查看此堆栈溢出 Q 和 A,以明确解决您的问题。 Difference between cursor.count() and cursor.size() in MongoDB

      【讨论】:

        猜你喜欢
        • 2015-06-07
        • 2019-09-23
        • 2011-08-04
        • 1970-01-01
        • 1970-01-01
        • 2012-10-06
        • 1970-01-01
        • 1970-01-01
        • 2014-11-27
        相关资源
        最近更新 更多