azure - 如何在azure文档数据库中向另一个查询提供一个查询的结果

标签 azure azure-cosmosdb

如果我必须将从一个 select 语句获取的数字列表传递给另一个在同一集合上工作的 select 语句,我将如何执行该操作?

查询:

SELECT VALUE student.studentId 
FROM student 
where student.acctType="student"

这给了我一个结果:

["1","2","3","4"]

查询,如果我有这些值

SELECT student.firstName,
       student.lastName
from student 
where student.acctType="student" AND 
      student.studentId IN ("1","2","3","4")

这是我尝试过但没有成功的方法:

SELECT student.firstName,
       student.lastName
from student 
where student.acctType="student" AND 
      student.studentId IN ( SELECT VALUE student1.studentId 
FROM student1 
where student1.acctType="student")

最佳答案

DocumentDB 具有熟悉的 SQL 查询语法,但它仍然是一个 NoSQL 数据库。因此,它不支持文档间联接,也不支持子查询。这是坏消息。

好消息是,DocumentDB 允许您编写存储过程 (sproc),以完成您可以使用完整 SQL 完成的所有任务,甚至更多。您可以编写一个存储过程来执行返回数字列表的查询,然后使用该数字列表组成另一个查询来获取所需的数据。

也就是说,对于您描述的简单用例,您可以通过两次往返在客户端完成相同的事情。

关于azure - 如何在azure文档数据库中向另一个查询提供一个查询的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35250294/

相关文章:

azure - 有没有办法将多个 power bi api 请求合并到一个rest api 调用中?像批量请求以获得集体响应之类的东西?

c# - 如何(我应该)模拟 DocumentClient 进行 DocumentDb 单元测试?

c# - 如何在代码中将 Azure Cosmos DB Mongo API 的吞吐量设置为 10000 RU

c# - 使用 .NET 在 iothub 上上传配置/部署

php - 我如何在 azure 中为 php 应用程序设置 webjob

c# - Azure Cosmos 数据库引发套接字异常

azure - Cosmos 文档客户端是否支持取消 token ?

.net - 如何在 where 子句中将 UserDefinedFunctionProvider.Invoke 与 udfs 结合使用

azure - 无法接收从 CRM 发送到 Azure Biztalk 服务中的服务总线队列的 RemoteExecutionContext 消息

powershell - Azure AD V2 PowerShell - 在输出中排除属性