我有一个员工集合,我想检索 10 名员工的完整文档,我想将其 ID 发送到我的 SQL SELECT。我怎么做?
为了进一步澄清,我有 10 个 EmployeeId,我想从我的员工集合中提取这些员工的信息。感谢您对此的帮助。
我有一个员工集合,我想检索 10 名员工的完整文档,我想将其 ID 发送到我的 SQL SELECT。我怎么做?
为了进一步澄清,我有 10 个 EmployeeId,我想从我的员工集合中提取这些员工的信息。感谢您对此的帮助。
更新:
截至2015年 5 月 6日,DocumentDB 支持IN
关键字;最多支持 100 个参数。
例子:
SELECT *
FROM Employees
WHERE Employees.id IN (
"01236", "01237", "01263", "06152", "21224",
"21225", "21226", "21227", "21505", "22903",
"14003", "14004", "14005", "14006", "14007"
)
原答案:
添加到瑞安的答案......这是一个例子:
创建以下 UDF:
var containsUdf = {
id: "contains",
body: function(arr, obj) {
if (arr.indexOf(obj) > -1) {
return true;
}
return false;
}
};
使用您的 contains UDF 是一个 SQL 查询:
SELECT * FROM Employees e WHERE contains(["1","2","3","4","5"], e.id)
有关创建 UDF 的文档,请查看DocumentDB SQL 参考
您还可以在DocumentDB 反馈论坛上投票支持为“WHERE”子句实施“IN”关键字。
您也可以通过使用 OR 支持来实现这一点。下面是一个示例——</p>
SELECT *
FROM Employees e
WHERE e.EmployeeId = 1 OR e.EmployeeId = 2 OR e.EmployeeId = 3
如果您需要的 OR 数量超过 DocumentDB 的上限,则必须通过employeeId 值将查询分解为多个较小的查询。您还可以从客户端并行发出查询并收集所有结果
今天最好的方法是创建一个 Contains() UDF,它接收要搜索的 id 数组并在 WHERE 子句中使用它。