📜  DocumentDB-查询文档(1)

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

DocumentDB-查询文档

Azure Cosmos DB 是一个多模型数据库服务,它可以存储不同类型的数据,如关系、文档、列族等。其中,DocumentDB 是其文档数据库服务。这里介绍在 DocumentDB 中如何查询文档。

查询语句

在 DocumentDB 中,查询语句采用 SQL 语法。查询语句的基本格式如下:

SELECT expression
FROM collection
WHERE condition

其中,expression 表示要查询的字段或表达式;collection 表示要查询的文档集合;condition 表示查询条件。

DocumentDB 支持多种查询语句,包括 SELECT、JOIN、GROUP BY、ORDER BY 等。可根据具体的查询需求编写 SQL 语句。

查询文档

在 DocumentDB 中,查询文档可以使用以下语句:

SELECT *
FROM collection

该语句将返回指定集合中的所有文档。如需返回指定文档的部分字段,可将 * 替换为字段名(多个字段用逗号分隔)。

SELECT field1, field2
FROM collection

如需根据条件查询文档,可添加 WHERE 语句,并在其中指定查询条件。例如,以下语句将返回 collection 中满足条件 age >= 18 AND gender = 'male' 的文档:

SELECT *
FROM collection
WHERE age >= 18 AND gender = 'male'

查询条件可以包括比较运算符(如 =、>、<、>=、<=)、逻辑运算符(如 AND、OR、NOT)和函数(如 CONTAINS)。

查询结果

在 DocumentDB 中,查询结果是一个 JSON 数组,其中每个元素表示一个文档。查询结果可以在客户端进行进一步处理,如解析、转换、过滤等。

以下是一个查询结果的示例:

[
  {
    "id": "1",
    "name": "John",
    "age": 25,
    "gender": "male"
  },
  {
    "id": "2",
    "name": "Mary",
    "age": 30,
    "gender": "female"
  }
]

在客户端中,可以使用 JSON 解析库将查询结果转换为对象或结构体。例如,在 .NET 中可以使用 Newtonsoft.Json 库进行解析:

string json = @"[
  {
    ""id"": ""1"",
    ""name"": ""John"",
    ""age"": 25,
    ""gender"": ""male""
  },
  {
    ""id"": ""2"",
    ""name"": ""Mary"",
    ""age"": 30,
    ""gender"": ""female""
  }
]";

List<Person> persons = JsonConvert.DeserializeObject<List<Person>>(json);
总结

在 DocumentDB 中,查询文档可以使用 SQL 语句进行。查询语句可以包括 SELECT、WHERE、JOIN、GROUP BY、ORDER BY 等子句,支持多种查询条件和函数。查询结果是一个 JSON 数组,可以在客户端进行解析和处理。