0
私はAndroidアプリケーションのデータベースとしてmongodbを使用してnodejs apiを構築しています。 AndroidユーザーがGPS位置をバックエンドに送信すると、apiはすべてのデータをユーザーからの距離だけ並べ替えて返信します。
このため、私は集計フレームワークで$ geoNearステージを使用しています。私は指示に従ったが、私はデータを得ることができず、 "定義されていない"。
ここはdbのJSONデータ形式です。
{
userId: "",
description: "",
location: {
type: "Point",
coordinates: [ latitude, longitude ]
},
image: ""
}
ここで私のgeoNearコードです。
db.posts.createIndex({location:"2dsphere"});
db.posts.aggregate([
{
$geoNear: {
near: { type: "Point", coordinates: [ parseFloat(geoInfo.latitude) , parseFloat(geoInfo.longitude) ] },
distanceField: "distance",
spherical: true
}
},
{ $sort: { distance: 1 } },
{ $limit: 20 }
], function(err, docs) {
if (err) {
callback(err, null);
}
callback(null, docs);
});
未定義の結果しか表示されません。 今私はこの問題で数日間立ち往生しています。 どんな助力も大歓迎です!
こんにちはNotionquest、親切な答えてくれてありがとう。あなたのコードはサンプルデータで動作しているようですが、データベースに持ってきても動作しません。 –
ここはエラーです。 '" errmsg ":"例外:geoNearコマンドが失敗しました:{errmsg:\ "例外: '近く'フィールドはポイント\"、コード:17304、ok:0.0} "でなければなりません"、 ' –
文書(1または2文書)。そうしないと、問題をデバッグすることが困難になります。 – notionquest