コレクションがあるのAzure CosmosDBがあります。ここで、フィールドgeoJSON
はgeoJSON形式のレストランの場所を示します。私はこれにアクセスするためにMongoDB APIを使用しています。Mongo APIを使用してAzure CosmosDB(DocumentDB)で地理空間索引照会が機能しない
mongoシェルを使用してDBにログインすると、db.restaurants.find()
を使ってすべてのドキュメントを見ることができます。 db.restaurants.createIndex({geoJSON: "2dsphere"})
を使用して2dsphere地理空間インデックスを作成しました。
出力:
{
"_t" : "CreateIndexesResponse",
"ok" : 1,
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 3,
"numIndexesAfter" : 4
}
しかし、db.restaurants.getIndexes()
を実行している時に、私はまだ唯一の3つのインデックスを参照してください。 This質問によると、インデックスは許可されていません。これは今の場合ですか?
さらに、そこ
{
"v" : 1,
"key" : {
"DocumentDBDefaultIndex" : "2dsphere"
},
"name" : "DocumentDBDefaultIndex_2dsphere",
"ns" : "<redacted>"
}
と呼ばれる指標であると思われるが、地理空間クエリを実行することは何も返しません。
db.restautants.find({DocumentDBDefaultIndex: {$near: {$geometry: {type: "Point", coordinates: [24.9430111, 60.166608]}, $maxDistance: 1000}}})
mongoシェルを使用してこのインデックスに対してジオスペースクエリを実行するにはどうすればよいですか?これはCosmosDBのバグですか?
ありがとうございました。私はちょうど私のアプリケーションでネイティブDocumentDB APIを使うことに決めました。それには学習曲線があるので、それは私を減速させています。すぐに追加されることを願っています。 – nihil0