地理空间查询的计数操作似乎存在问题,其中包含超过100个结果。如果我运行以下查询,无论如何我都会得到100的计数。
db.locations.find({"loc":{$nearSphere:[50, 50]}}).limit(1000).count()
我理解使用“near”语法的查询的默认大小限制为100,但看起来您不能返回更多。我做错了什么或有解决方法吗?
答案 0 :(得分:2)
尝试“在...内”而不是“近”。 这对我有用,
center = [50, 50];
radius = 1/111.12; //convert it to KM.
db.places.count({"loc" : {"$within" : {"$center" : [center, radius]}}})
找到了这个
答案 1 :(得分:0)
对于它的价值,即使为光标报告的计数为100(无论您给出查询的限制,甚至是“10”),当您运行查询时,实际上会得到“限制”数量的结果
这是一个问题的链接,他们声称它没有被破坏:
希望有所帮助!
答案 2 :(得分:0)
这不是mongo查询的问题。尝试使用cursor.size()而不是cursor.count()。 Count不考虑大小的限制。因此,如果使用.size()而不是count(),则应该打印出正确数量的返回项。
查看此堆栈溢出Q和A,以找到解决问题的明确方法。 Difference between cursor.count() and cursor.size() in MongoDB