首页 > 解决方案 > 比较 Cosmos DB (SQL API) 中的数组属性

问题描述

假设我们有以下形式的 Cosmos DB 文档:

{ "propA": [1, 2, 3], 
  "propB": [7, 2, 4, 2] }

是否可以编写一个查询来返回其中至少一个元素propA是其中成员的所有文档propB(换句话说,两个属性具有非空交集)?

如果是,是否也可以使用 LINQ(和 .NET Cosmos 客户端)?

标签: azure-cosmosdb

解决方案


请尝试类似这样的 sql:

SELECT distinct value c FROM c join d in c.propA where array_contains(c.propB,d)

这是我的结果:

在此处输入图像描述

林克:

FeedIterator<Prop> setIterator = this.container.GetItemLinqQueryable<Prop>().SelectMany(prop => prop.propA.Where(e => prop.propB.Contains(e)).Select(e => prop).Distinct()).ToFeedIterator<Prop>();

希望这可以帮到你。


推荐阅读