2016-10-21 3 views
0

MondoDbから場所を検索しようとしています。 私は私が以前に文書化するために使用して、私が取得しようと同じ座標を送信フォーマットコレクションC#とMongoDb find geo

Db.GetCollection<Station>("Stations").Indexes.CreateOne("{'Location': '2dsphere'}"); 
await Db.GetCollection<Station>("Stations").InsertOneAsync(station); 

{ 
"_id" : ObjectId("5809bd6b0d2e2437b0a745af"), 
"Price" : "1.0", 
"IsBusy" : false, 
"StationType" : 1772, 
"Image" : "123", 
"Location" : { 
    "Type" : "Point", 
    "Coordinates" : [ 
     53.9230359, 
     27.5110339 
    ] 
} 

}

挿入文書とMongoDBのコレクション「駅」を持っています場所

var gp = new GeoJsonPoint<GeoJson2DGeographicCoordinates>(new GeoJson2DGeographicCoordinates(longtitude, latitude)); 
var query = Builders<Station>.Filter.Near("location", gp, distance); 
var result = await Db.GetCollection<Station>("Stations").Find(query).ToListAsync(); 

このコードを試しましたが、rそれを同じにする

var point = new GeoJson2DGeographicCoordinates(longtitude, latitude); 
var pnt=new GeoJsonPoint<GeoJson2DGeographicCoordinates>(point); 
var dis = distance*1609.34; 
var fil = Builders<Station>.Filter.Near(p => p.Location, pnt, dis); 
var result = await Db.GetCollection<Station>("Stations").Find(fil).ToListAsync(); 

私は結果とエラーを取得していません。

答えて

0

私は決定を見つけました。 座標は経度、緯度順に格納する必要があります。

{ 
"_id" : ObjectId("5809d5598056df4c10c8af49"), 
"Price" : "1.0", 
"IsBusy" : false, 
"StationType" : 1772, 
"Image" : "123", 
"location" : { 
    "type" : "Point", 
    "coordinates" : [ 
     27.5110339, 
     53.9230359 
    ] 
} 

}