我正在运行Mongodb 2.06版本和10Gen提供的C#驱动程序版本(1.5)。
我想在我的一个实体上设置纬度和经度坐标,这样我就可以使用GeoNear或Query.WithinCircle查询实体。
我正在向我的实体添加一个强类型的Location对象,然后在挂起我的实体的Location对象上创建一个索引,但是我无法让任何GeoNear查询工作。
这就是我的位置实体的样子。
public class Location
{
[BsonDefaultValue(null)]
public Nullable<double> lon { get; set; }
[BsonDefaultValue(null)]
public Nullable<double> lat { get; set; }
}
这就是我的实体看起来的样子。
public class SomeEntity
{
public string Field1 {get; set;}
// more fields here...
public Location Loc {get; set;}
}
我找到了这个链接http://www.mongodb.org/display/DOCS/Geospatial+Indexing/并看到我的位置字段需要是一个数组。我的实体SomeEntity对于数组字段而不是我的Location对象会是什么样子?
我知道这很简单我只是想不出来! : - )
由于
答案 0 :(得分:4)
你可以试试这个:
public class SomeEntity
{
public string Field1 {get; set;}
// more fields here...
public double[] Loc {get; set;}
}
虽然您的现有类应该有效(虽然建议使用数组,但唯一真正的要求是对象由两个数字组成)。我可能不会使用Nullable&lt; double&gt;而只是使用双倍。
您的地理位置查询无法正常工作?