📜  DocumentDB SQL-值关键字(1)

📅  最后修改于: 2023-12-03 15:30:32.920000             🧑  作者: Mango

DocumentDB SQL-值关键字

作为Azure Cosmos DB中的一种API,Azure DocumentDB提供了SQL语言的支持。值关键字是SQL语言中的一种功能,它们用于在查询过程中引用查询的文档属性和常量值。本文将介绍DocumentDB SQL中的值关键字以及如何在文档查询中使用它们。

常量值关键字

DocumentDB SQL支持以下常量值关键字:

  • true:代表布尔值true。
  • false:代表布尔值false。
  • null:代表空值。
  • NaN:代表非数字值。
  • Infinity:代表正无穷值。

这些常量值可以被用于一些比较和逻辑操作中,例如:

SELECT * FROM c WHERE c.flag = true AND (c.count > 10 OR c.count < 5)
属性值关键字

在查询过程中,我们需要引用文档中的属性值。DocumentDB SQL提供了以下属性值关键字:

  • c:代表当前文档(current document)。
  • r:代表单个文档资源(single document resource)。

在查询过程中,我们可以使用这些关键字来引用文档属性,例如:

SELECT c.name, r._self FROM c JOIN r IN c.relatedResources

上面的查询中,c.name表示当前文档的name属性,r._self表示relatedResources数组中每个元素的_self属性。

当我们需要比较文档属性的值时,可以使用以下形式:

SELECT * FROM c WHERE c.date > '2018-01-01T00:00:00.000Z'

上面的查询中,c.date表示当前文档的date属性,'2018-01-01T00:00:00.000Z'是一串日期字符串,与日期类型的属性值进行比较。

用户定义值

在某些情况下,我们需要使用一些自定义的常量值。DocumentDB SQL通过UDF(用户定义函数)来支持用户定义值。UDF将一个常量表达式转换为一个函数,该函数返回常量值。

以下是一个使用UDF定义常量值的例子:

CREATE FUNCTION udf_true() {
  return true;
}

SELECT * FROM c WHERE c.flag = udf_true()

上面的查询中,udf_true()返回布尔值true作为查询条件。

结论

本文介绍了DocumentDB SQL中的值关键字,包括常量值关键字、属性值关键字和用户定义值。通过理解这些值关键字,您可以更加灵活地在文档查询中进行条件查询。