我正在考虑将我的数据库移植到Azure CosmosDB . 我们目前正在使用c#api,与mongodb集群交谈,使用mongodb c#驱动程序 .

我已将数据恢复到cosmosdb中,除了地理空间过滤之外,大多数东西都在工作 .

这是一个示例文档(原谅奇怪的Location.Location命名...):

DocumentXXX: {
    Location: {
        Postcode: "a-valid-postcode",
        Location: {
            type: "Point",
            coordinates: [
                -2.18969857656491,
                53.4463177975553
            ]
        }
    }
}

这是我的索引:

{
    "Location.Location" : "2dsphere"
}

这是我的过滤器:

var locationFilter = Builders<TDAO>.Filter.NearSphere(locationField, point, maxDistance);

哪里:

  • locationField是 DocumentXXX.Location.Location 的表达式

  • 点是 GeoJsonPoint<GeoJson2DGeographicCoordinates>

  • maxDistance是半径的整数

我出错了什么想法?

提前致谢!