【问题标题】:CosmosDB Table API with odata contains filter带有 odata 的 CosmosDB 表 API 包含过滤器
【发布时间】:2018-07-09 09:30:48
【问题描述】:

我们可以在 CosmosDB 上将 odata 'contains' 查询选项与 table api 一起使用吗?

CosmosDB sql api 支持 'contains' 语句,但不清楚我们是否可以将 'contains' 过滤器与 table api (odata) 一起使用。

https://docs.microsoft.com/tr-tr/rest/api/storageservices/querying-tables-and-entities

根据文档,Azure 表存储不支持包含过滤器,但我们知道 CosmosDB 对它有原生支持。

【问题讨论】:

    标签: odata azure-cosmosdb


    【解决方案1】:

    Cosmos DB 的表 API 和 Azure 表存储都支持与 https://docs.microsoft.com/en-us/rest/api/storageservices/querying-tables-and-entities#supported-query-options 中定义的完全相同的 OData 运算符,并且 contains 不在列表中,因此我们不通过表 API 支持它。

    请记住,Table API 适用于具有针对 Azure 表存储的现有工作代码的人,他们正在寻求更好的性能、地理分布等。如果您正在寻找全新的功能,那么我们鼓励您调查SQL API 而不是 Table API,因为我们对 SQL API 进行了持续的投资。对于 Table API,我们的目标只是匹配 Azure Table 存储的协议功能,而不是超过它。

    话虽如此,有一个解决方法。 Table API 是作为 SQL API 的包装器实现的。因此,可以将 SQL API 客户端指向表容器并使用普通的 SQL API 查询。但是请注意,您将看到的数据格式会很奇怪。我们使用自己的内部存储约定来存储表数据。也不要通过 SQL API 对 Table API 容器进行任何更新/写入,因为这会损坏您的数据。

    谢谢,

    Yaron Y. Goland
    Principal Program Manager
    Cosmos DB, Microsoft
    

    【讨论】:

    • 听起来你们将在某个时候弃用 Cosmos 和 Storage 帐户中的表。对此有任何意见吗?谢谢!
    猜你喜欢
    • 2022-07-03
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 2017-03-05
    • 1970-01-01
    相关资源
    最近更新 更多