c# - Azure DocumentDb - 查询空间数据

标签 c# asp.net linq azure azure-cosmosdb

我正在测试 Azure DocumentDb,以确定我们是否应该将数据库从 mongodb 更改为 doucmentDb。

我们在 mongodb 中有一个包含 10.000 多个位置的数据库,其中位置保存为 geojson。因此移动数据没有问题,但如何使用 .NET SDK 中的 linq 提供程序查询数据?

我们有自己的 geojson 实现,可与 mongodb 一起使用,因此我们对更改数据模型以依赖于 .NET SDK 中提供的空间类不感兴趣。

在查询 DocumentDb 时,是否可以使用具有自定义空间类的 linq 提供程序?

最佳答案

DocumentDB 最近添加了对空间数据类型的支持,并且原生支持 GeoJSON 标准:https://azure.microsoft.com/en-us/blog/announcing-geospatial-support-in-azure-documentdb/

下面是使用 LINQ 在 DocumentDB 中进行空间查询的示例:

// An example document with spatial data
public class MyDocument 
{
    public string Id { get; set; }
    public Microsoft.Azure.Documents.Spatial.Point Location { get; set; }
}

// An example distance query - get all documents within 30 km of a given point
client.CreateDocumentQuery<MyDocument>(collection.SelfLink)
    .Where(x => x.Location.Distance(new Point(32.33, -4.66)) < 30000))

关于c# - Azure DocumentDb - 查询空间数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33606989/

相关文章:

c# - 如何使用 C# 和 IIS 无缝压缩我发布到表单的数据?

c# - 无法在异步调用中等待对象

c# - EntityFramework Linq To Entities 位域/ bool 问题

javascript - 如何在发布前设置TextBox的文本值?

c# - 如何使用 JS 在 C# 中的按钮单击上关闭 rad 窗口

c# - LINQ - 将存储为字符串的数字相加

c# - 是否有带谓词的 String.IndexOf?

c# - ListView : Enable text trimming instead of HorisontalScrollBar

c# - ASP C#更新内容

c# - 如何通过缩小 c# 和 linq 中的另一个列表来创建列表