2015-11-19 84 views
2
var query ="{'Geo':{'$near': {'$geometry': {'type': 'Point' ,'coordinates':[]} }}}"; 
var parsing = BsonDocument.Parse(query); 
var qwithcoor = parsing["Geo"]["$near"]["$geometry"]["coordinates"].AsBsonArray; 
qwithcoor.AddRange(coordinates); 
parsing["Geo"]["$near"].AsBsonDocument.Add("$maxDistance", radius); 

var collection = database.GetCollection<BsonDocument>("mycollection"); 
var documents = await collection.Find(parsing).ToListAsync(); 

我想用Builders<BsonDocument>.Filter来做到这一点。像这样:

var query=Builders<BsonDocument>.Filter.Near(); 
var documents=await collection.Find(query).ToListAsync(); 

我是否在过滤器后使用Near?什么是Near参数?

回答

2

我解决这个与

var gp =new GeoJsonPoint<GeoJson2DGeographicCoordinates>(new GeoJson2DGeographicCoordinates(coordinates[0], coordinates[1])); 
var query=Builders<BsonDocument>.Filter.Near("Geo",gp,radius); 
var result = await col.Find(query).ToListAsync();