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() }
}