MongoDb C# - 如何在文档中存储 GeoJSON
MongoDb C# - How to store GeoJSON in a document
很难在 MongoDb C# 驱动程序中找到 GeoJSON。
我尝试创建这样的文档:
new BsonDocument()
{
{ "PointType", "Building"},
{ "Name", "My Place"},
{ "Location", ??? }
}
并尝试在上面的 ???
中填写类似 GeoJson.Point(new GeoJson2DCoordinates(0.0000, 0.0000)).ToBsonDocument()
的内容。
但是一旦我为 Location
创建索引并尝试插入该文档,MongoDb 就不高兴了。它抛出 location object expected, location array not in correct format
.
是否有使用 BsonDocument
和 GeoJSON 的 C# 示例或文档?
关于插入 GeoJSON 值的任何其他建议?
我应该使用 IndexKeys.Geo2DSphere
而不是 IndexKeys.Geo2D
来存储 GeoJSON 点。
var keys = Builders<BsonDocument>.IndexKeys.Geo2DSphere("Location");
await collection.Indexes.CreateOneAsync(keys);
那我可以做:
new BsonDocument()
{
{ "PointType", "Building"},
{ "Name", "My Place"},
{ "Location", GeoJson.Point(new GeoJson2DCoordinates(lng, lat)).ToBsonDocument() }
}
很难在 MongoDb C# 驱动程序中找到 GeoJSON。
我尝试创建这样的文档:
new BsonDocument()
{
{ "PointType", "Building"},
{ "Name", "My Place"},
{ "Location", ??? }
}
并尝试在上面的 ???
中填写类似 GeoJson.Point(new GeoJson2DCoordinates(0.0000, 0.0000)).ToBsonDocument()
的内容。
但是一旦我为 Location
创建索引并尝试插入该文档,MongoDb 就不高兴了。它抛出 location object expected, location array not in correct format
.
是否有使用 BsonDocument
和 GeoJSON 的 C# 示例或文档?
关于插入 GeoJSON 值的任何其他建议?
我应该使用 IndexKeys.Geo2DSphere
而不是 IndexKeys.Geo2D
来存储 GeoJSON 点。
var keys = Builders<BsonDocument>.IndexKeys.Geo2DSphere("Location");
await collection.Indexes.CreateOneAsync(keys);
那我可以做:
new BsonDocument()
{
{ "PointType", "Building"},
{ "Name", "My Place"},
{ "Location", GeoJson.Point(new GeoJson2DCoordinates(lng, lat)).ToBsonDocument() }
}