Cosmos DB 查询 - 当某个属性不存在于所有文档中时使用 ORDER BY

2023-12-04

我们在为 Cosmos Document DB 编写查询时遇到问题,我们想要创建一个新的文档属性并在 ORDER BY 子句中使用它

例如,如果我们有一组文档,例如:

{
  "Name": "Geoff",
  "Company": "Acme"
},
{
  "Name": "Bob",
  "Company": "Bob Inc"
}

...我们编写一个查询,例如SELECT * FROM c ORDER BY c.Name这工作正常并返回两个文档

但是,如果我们要添加具有附加属性的新文档:

{
  "Name": "Geoff",
  "Company": "Acme"
},
{
  "Name": "Bob",
  "Company": "Bob Inc"
},
{
  "Name": "Sarah",
  "Company": "My Company Ltd",
  "Title": "President"
}

...我们编写一个查询,例如SELECT * FROM c ORDER BY c.Title它只会返回 Sarah 的文档,并排除没有 Title 属性的 2 个文档。

这意味着 ORDER BY 子句的行为就像一个过滤器而不仅仅是一个排序,这似乎是出乎意料的。

似乎所有文档模式都可能随着时间的推移添加属性。除非我们返回并将这些属性添加到容器中的所有现有文档记录中,否则我们永远无法在不排除记录的情况下在 ORDER BY 子句中使用它们。

有谁有解决方案允许 ORDER BY 仅影响结果集的排序顺序?


现在,ORDER BY使用索引属性工作,并且缺失值不会包含在使用以下命令的查询结果中ORDER BY.

作为解决方法,您可以执行两个查询并合并结果:

  • 您当前正在执行的查询ORDER BY,返回包含以下内容的所有文档Title属性,已订购
  • 第二个查询,返回所有没有的文档Title定义的。

第二个查询看起来像:

SELECT * FROM c
WHERE NOT IS_DEFINED(c.Title)

另请注意,根据这张纸条在 EF Core 存储库问题列表中,使用复合索引(其中缺少属性的文档are回到)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cosmos DB 查询 - 当某个属性不存在于所有文档中时使用 ORDER BY 的相关文章

  • 如何通过命令行填充 CosmosDB 集合?

    我正在为 Azure 开发一组脚本 我想知道如何使用以下命令填充 CosmosDB 集合az 目前 我知道如何创建数据库和集合 但如何初始化数据库 az cosmosdb create resource group RESOURCE GRO
  • Azure DocumentDB 多租户架构

    我一直在预览期间将 DocumentDB 实现到多租户系统中 我的计划是在 DocumentDB 帐户下为每个注册的租户生成一个新数据库 大部分代码已经就位 并且测试进展非常顺利 由于 DocumentDB 已正式发布并且文档已最终确定 我
  • 使 Azure DocumentDB 不返回服务字段

    我在节点应用程序中为 Azure DocumentDB 使用类似 SQL 的语法 这是方法代码 client queryDocuments collection self SELECT FROM root toArray function
  • RU/m 去哪儿了?

    这曾经是 CosmosDb 的一项功能 用于提供每分钟请求单位 以及每秒请求单位 但是该选项似乎已从门户中消失 并且所有在线文档均已删除 谢谢 奥利弗 RU m 已死 刚刚收到微软的回复 我们收到了参与预览计划的客户的大量反馈 从 2017
  • Azure Functions 和 DocumentDB 触发器

    是否可以指定 DocumentDB 在写入 DocumentDB 时触发触发器 我有一个 Azure 函数 可以从服务总线队列中提取 JSON 消息并将它们放入 DocumentDB 中 如下所示 using System using Sy
  • 检查 DocumentDB 对象是否存在的正确方法

    在 Microsoft 示例中 我看到两种方法来检查 DocumentDb 对象 例如数据库 DocumentCollection Document 等 是否存在 首先是创建一个查询 Database db client CreateDat
  • 使用 Azure Function 删除 CosmosDB 条目

    我一直在寻找一种技术 通过浏览器内的代码编辑器 使用 Azure Functions 删除 Cosmos 数据库中的项目 我不想在 VS 上使用本地开发的代码有多种原因 我正在使用的代码可用here https pastebin com X
  • CosmosDB 存储过程 - Promise 而不是回调

    是否可以在 CosmosDB DocumentDB 存储过程 API 调用中使用 JavaScript Promise 而不是常规回调 一种用法是实现分页 例如 token getToken doSomething token functi
  • 从 DocumentDb 中删除特定文档

    以下代码检索具有特定 jobId 的所有 CrawlResult 文档 var result from c in documentDb CreateDocumentQuery
  • 在 Hadoop 作业中找不到类

    我有一个地图缩减作业 它从 DocumentDB 获取输入 我已将 jar 文件添加到源代码中的 lib 目录下 并在运行作业时使用 libjars 但我仍然收到 jar 文件中的类未找到类错误 这是我的驱动程序的一部分 public cl
  • 嵌套文档上的 Azure DocumentDB ARRAY_CONTAINS

    似乎是ARRAY CONTAINS嵌套文档上的函数永远不会匹配任何文档 例如 尝试使用 Azure DocumentDB 进行以下简单查询查询游乐场 https www documentdb com sql demo Sandbox SEL
  • Azure Function CosmosDBTrigger 不可扩展

    我有一个带有 CosmosDBTrigger 的 Azure 函数 用于使用 Application Insights 监控的消费游戏 正在监控的集合有500 000插入更改提要中 消费计划将实例数量扩大到15几分钟之内 但只有第一个实例能
  • CosmosDB C# SDK ProyUrl 缺失

    我正在 NET Core 中开发一个针对 Azure 的容器化微服务项目 docker 因此 我们使用 Azure Cosmos DB 和 CoreSql Api 的 C Cosmos DB SDK v2 4 因为 v3 仅处于预览版 在开
  • DocumentDB IN 关键字与 Linq

    您现在可以使用 DocumentDB 创建 IN 查询 如下所示 SELECT FROM Families WHERE Families id IN AndersenFamily WakefieldFamily 但如果我使用 Linq 运行
  • Azure Functions:CosmosDBTrigger 在 Visual Studio 中未触发

    TL DR 这个例子 https learn microsoft com en us azure azure functions functions bindings cosmosdb trigger c example在 VS2017 中
  • 获取“命令中的查询必须针对单个分片”

    我有一个使用 Mongo API 的 CosmosDB 设置 我有一个集合 在文档的一个字段上有一个散列分片 当我运行类似命令时db collection remove or db collection deleteMany我收到以下错误
  • Cosmos DB Mongo API 如何管理“请求率很大”情况

    我有以下代码 async function bulkInsert db collectionName documents try const cosmosResults await db collection collectionName
  • cosmosdb 模拟器没有给出任何结果

    我不知道为什么在查询宇宙数据库时会发生这种情况 它不会显示任何文档 即使是 SELECT FROM c 但显示了 RU 但它与文档选项卡中的文档选项卡配合得很好 如果我使用任何过滤器 那么它也可以工作 但它不适用于 SQL 查询 我已经添加
  • 带有 CosmosDBTrigger 的 Azure 函数似乎不是由 upsert 触发的

    我是第一次使用 Azure Functions 我正在尝试编写一个简单的函数来响应更改或添加到 CosmosDb 集合中的文档 我写的函数如下所示 FunctionName ChangeLog public static void Run
  • cosmos 查询的 ORDER BY 不区分大小写

    这个问题几乎与我可以使用 Order By 和 ToLower 对 DocumentDB 执行不区分大小写的字符串排序吗 https stackoverflow com questions 38919101但由于 5 年前就有人问过这个问题

随机推荐

  • 将 create_function() 替换为 PHP8 的其他内容[重复]

    这个问题在这里已经有答案了 所以我有一个以前工作正常的插件 但几天来它给我抛出一个错误 PHP 致命错误 未捕获错误 调用未定义的函数 create function 经过一番搜索 我发现这是因为create function 在 PHP
  • .NET 组合框的项目上是否可以有上下文菜单?

    在我的应用程序中 我有包含多个项目的下拉列表 我想当用户在下拉项上单击鼠标右键时显示 上下文菜单 这可能吗 如果可能的话 如何实现 这是可能的 但并不容易 组合框下拉列表是即时创建的本机列表框 要获取该列表框的句柄 您必须在 DropDow
  • 彩色 grep — 查看整个文件并突出显示匹配项

    I find grep s color always标志非常有用 但是 grep 仅打印匹配的行 除非您要求上下文行 鉴于它打印的每一行都有一个匹配项 突出显示并没有增加尽可能多的功能 我真的很想cat文件并查看整个文件 其中模式匹配突出显
  • 如何在批处理文件中使用 if - else 结构?

    我有一个关于批处理文件中的 if else 结构的问题 每个命令单独运行 但我无法安全地使用 if else 块 因此我的程序的这些部分不起作用 我怎样才能使这些部件运行 谢谢 IF F 1 IF C 1 copying the file
  • 如何在node js中使用scp2将文件复制到远程服务器?

    我想使用 Node js 将文件从本地服务器复制到远程服务器scp2包裹 首先 使用文件上传到本地服务器multer之后将该文件复制或移动到远程服务器 My Code exports newFileUpload function req r
  • 我怎样才能告诉程序停止使用 freopen

    我是 C 初学者 我有一个问题超出了我的极限 我在 GNU GCC 下编译 我用 include
  • 重置部分应用程序设置

    所以 我有一个名为 Preferences 的表格TabControl在里面 这TabControl包含几个TabPages 常规 高级 杂项 带有少量组合框 复选框和标签 TabPage 内的每个控件都被分配应用程序设置属性绑定 又名它们
  • setTimeout 如何防止潜在的堆栈溢出

    一个例子 var list readHugeList var nextListItem function var item list pop if item setTimeout nextListItem 0 this line 如何使用s
  • 将 SHA1 转换为正常形式

    我有一个数据库 其中每个密码都是通过 SHA1 传递的 有时 我想去用户仪表板看看感觉如何 有没有办法 我可以将 SHA1 转换为正常形式以用于测试目的 谢谢 如果 正常形式 的意思是 我可以检索创建给定哈希的字符串 那么答案是否定的 它应
  • mkdir() 未将 chmod 设置为 0777

    为什么 mkdir 不将 CHMOD 设置为0777 mkdir var www test 0777 创建目录后 CHMOD 设置为0755 来自 php net bool mkdir string pathname int mode 07
  • 为什么根据我的 numpy 数组的类型是 int64 还是 uint8,按元素加法/减法的输出会有所不同?

    我正在进行图像比较并计算差异 并且注意到 仅当我使用 dtype int64 而不是 dtype uint8 作为 numpy 数组读取数据时 逐元素减法似乎才起作用 出于图像可视化的原因 我想切换到 unit8 image1 np arr
  • 将输出写入 Azure Functions 中的 Blob

    我正在学习使用 Azure 函数 所以 我可能听起来很愚蠢 我正在编写一个计时器触发函数 该函数每 1 分钟运行一次 添加两个数字并写入文件 这工作正常 因为我可以将输出写入本地服务器上的文件 第二步 我想将输出写入 blob 下面是代码
  • 如何使用 Swift Playground 打印到控制台?

    我一直在关注他们的新语言 swift 的 Apple Guide 但我不明白为什么右侧的栏只显示 Hello playground 而不是 Hello world 有人可以解释为什么println不是打印在右边吗 Playground no
  • 在sqlite中获取日期差异

    我想获得今天和到期日之间的日期差异 这是我实现的代码 但这并没有返回正确的输出 public String getDaysList Cursor cursor db query COUPON null null null null null
  • 理解 python id() 的唯一性

    Python 文档id 功能陈述如下 这是一个保证唯一且恒定的整数 该对象在其生命周期内 两个不重叠的对象 一生可能有相同的id value CPython实现细节 这是内存中对象的地址 虽然 下面的代码片段表明id的重复 由于我没有明确d
  • iPhone 的 CSS 媒体查询

    我有一个网站 该网站将使用媒体查询在桌面和 iPhone 上显示以提供不同的样式表 因此例如始终加载reset css 但如果在桌面上也加载desktop css 但如果在iPhone上 或者如果用户调整浏览器窗口的大小 改为加载 ipho
  • IE8 中 AJAX 的意外缓存结果

    我在 Internet Explorer 缓存 JQuery Ajax 请求结果时遇到严重问题 我的网页上有标题 每次用户导航到新页面时该标题都会更新 页面加载后我会这样做 get game getpuzzleinfo null funct
  • 从 ADUser DistinguishedName 获取 CN 值

    我有一个 PS 脚本 用于检查 Active Directory 中某些自定义用户的属性 属性之一是 经理 data Get ADUser user Properties Select Object DisplayName LockedOu
  • collections.sort方法仅用于List类型的集合吗?

    朋友们 我是 Java Collection 的新手 我想问一下Collections sort 方法仅用于 由集合使用List类型 我无法对以下代码进行排序 Collection collection new HashSet collec
  • Cosmos DB 查询 - 当某个属性不存在于所有文档中时使用 ORDER BY

    我们在为 Cosmos Document DB 编写查询时遇到问题 我们想要创建一个新的文档属性并在 ORDER BY 子句中使用它 例如 如果我们有一组文档 例如 Name Geoff Company Acme Name Bob Comp