查询问题:当 maxDistance 参数加大时,返回值并不会变大,但在不用地图点距离进行查询时,是可以返回更多值的。
查找了很多资料,当看到D 4.2 版本官方资料中提到$limit 参数已取消时,怀疑可能是版本问题。
当加上 limit 2000 参数值后进行查询,真的可以返回更多记录。
(limit 默认值为100,但返回值在50左右后,就不返回更多值,所以开始也没往这里想)
回到服务器查询,发现MongoDB 版本是 4.0.2 (很多服务器我已安装了4.2.8 版本,开始没想到还有一台旧服务器还是4.0.2)
原查询MQL:
db.c_hotel.aggregate([
{ “$geoNear” :
{ “near” :{type:“Point”,coordinates:[120.009811504981,36.2892503005251]},
“maxDistance” : 90000.0,
“limit”:1000, #在4.0.2 版本起效,4.2 版本后不可用。
“spherical” : true,
“distanceField” : “distance”, “key” : “GDpos” }},
{ “KaTeX parse error: Expected '}', got 'EOF' at end of input: match" : { "and” : [{ “cnCityCode” : “3702”}, { “minPrices.Date” : 20230526}]}}, { “ u n w i n d " : " unwind" : " unwind":"minPrices”},
{ “KaTeX parse error: Expected '}', got 'EOF' at end of input: match" : { "and” : [{ “cnCityCode” : “3702”}, { “minPrices.Date” : 20230526}]}},
{ “KaTeX parse error: Expected '}', got 'EOF' at end of input: …" : { "_id" : "_id”, “CnName” : “ C n N a m e " , " A d d r C N " : " CnName","AddrCN" : " CnName","AddrCN":"AddrCN”,“GDpos” : “ G D p o s " , " d i s t a n c e " : " GDpos", "distance" : " GDpos","distance":"distance”},
“Date” : { “ l a s t " : " last" : " last":"minPrices.Date”},“Price” : { “ m i n " : " min" : " min":"minPrices.Price”}}},
{ “KaTeX parse error: Expected '}', got 'EOF' at end of input: …0, "CnName" : "_id.CnName”, “Date” : 1, “Price” : 1, “GDpos” : “ i d . G D p o s " , " d i s t a n c e " : " _id.GDpos", "distance" : " id.GDpos","distance":"_id.distance”}},
{ “$sort” : { “distance” : -1}} ]);