azure-cosmosdb - 比较 Cosmos DB (SQL API) 中的数组属性
问题描述
假设我们有以下形式的 Cosmos DB 文档:
{ "propA": [1, 2, 3],
"propB": [7, 2, 4, 2] }
是否可以编写一个查询来返回其中至少一个元素propA
是其中成员的所有文档propB
(换句话说,两个属性具有非空交集)?
如果是,是否也可以使用 LINQ(和 .NET Cosmos 客户端)?
解决方案
请尝试类似这样的 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>();
希望这可以帮到你。
推荐阅读
- r - 如何根据其他矩阵的行名对矩阵进行子集化和重新排序
- php - Laravel 更新 OneToOne 雄辩关系
- flutter - 用于颤振的 Windows 的 iOS 模拟器
- django - Heroku Redis - 什么是连接?Python Celery 完成任务后,为什么我的连接不会降为零?
- javascript - 如何使用 momentJS 格式化短日期?
- c# - 将字符串中的特殊字符更改为空格,然后获取原始字符串
- javascript - 有没有办法找到代码在浏览器上创建动态弹出窗口的位置?
- github - 使用 GitPython 克隆存储库显示“无法预加载包文件:没有此类文件或目录错误”
- webpack - 删除 webpack 离线插件的正确方法是什么?
- c# - Net Core 3.1 BackgroundService 导出图