これはマングースのバグのようです 。
クエリをGeoJSON
を使用するように変更します 座標ペアの代わりにオブジェクト 、そのようなもの:
qry.where('loc').near({
center: {
type: 'Point',
coordinates: search.loc
},
maxDistance: search.distance * 1000
});
結果は次のクエリになります:
Mongoose: models.find({ loc: { '$near': {
'$maxDistance': 1,
'$geometry': { type: 'Point', coordinates: [ 10, -20 ] } } }
}) { fields: undefined }
検索は成功しました。
ドキュメントには、座標ペアを使用してクエリが明示的に示されています:
query.where('loc').near({ center: [10, 10], maxDistance: 5 });
ただし、これは機能しないようです。例は次のようになります。
query.where('loc').near({ center: { coordinates: [10, 10], type: 'Point' }, maxDistance: 5 });