首页 文章

在DocumentDB中使用多个值进行SELECT

提问于
浏览
1

我有一个Employees集合,我想要检索10个员工的完整文档,我的ID要发送到我的SQL SELECT . 我怎么做?

为了进一步澄清,我有10个EmployeeId,我想从Employees集合中提取这些员工的信息 . 我很感激你的帮助 .

4 回答

  • 5

    您也可以通过使用OR支持来实现此目的 . 以下是一个样本 -

    SELECT * 
    FROM Employees e
    WHERE e.EmployeeId = 1 OR e.EmployeeId = 2 OR e.EmployeeId = 3
    

    如果您需要的数量多于DocumentDB所包含的OR数,则必须按employeeId值将查询分解为多个较小的查询 . 您还可以从客户端并行发出查询并收集所有结果

  • 1

    今天最好的方法是创建一个Contains()UDF,它接受了要搜索的id数组并在WHERE子句中使用它 .

  • 3

    是否

    Select * from Employees where EmployeeId in (1,3,5,6,...)
    

    不行 ?

    感谢ryancrawcour我们知道它没有

  • 0

    Update:

    截至5/6/2015,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"
    )
    

    Original Answer:

    再加上Ryan的回答......这是一个例子:

    创建以下UDF:

    var containsUdf = {
        id: "contains",
        body: function(arr, obj) {
            if (arr.indexOf(obj) > -1) {
                return true;
            }
            return false;
        }
    };
    

    使用包含UDF是一个SQL查询:

    SELECT * FROM Employees e WHERE contains(["1","2","3","4","5"], e.id)
    

    有关创建UDF的文档,请查看DocumentDB SQL reference

    您还可以投票在DocumentDB Feedback Forums上为"WHERE"子句实现"IN"关键字 .

相关问题