DocumentDB SQL - Biểu thức vô hướng
Trong DocumentDB SQL, mệnh đề SELECT cũng hỗ trợ các biểu thức vô hướng như hằng số, biểu thức số học, biểu thức logic, v.v. Thông thường, các truy vấn vô hướng hiếm khi được sử dụng, vì chúng không thực sự truy vấn tài liệu trong bộ sưu tập, chúng chỉ đánh giá biểu thức. Nhưng vẫn hữu ích khi sử dụng các truy vấn biểu thức vô hướng để tìm hiểu các kiến thức cơ bản, cách sử dụng các biểu thức và định hình JSON trong một truy vấn và những khái niệm này áp dụng trực tiếp cho các truy vấn thực tế mà bạn sẽ chạy với các tài liệu trong một bộ sưu tập.
Hãy xem một ví dụ có chứa nhiều truy vấn vô hướng.
Trong Trình khám phá truy vấn, chỉ chọn văn bản sẽ được thực thi và nhấp vào 'Chạy'. Hãy chạy cái đầu tiên này.
SELECT "Hello"
Khi truy vấn trên được thực thi, nó tạo ra kết quả sau.
[
{
"$1": "Hello"
}
]
Đầu ra này có thể trông hơi khó hiểu, vì vậy hãy chia nhỏ nó.
Đầu tiên, như chúng ta đã thấy trong bản trình diễn trước, kết quả truy vấn luôn được chứa trong dấu ngoặc vuông vì chúng được trả về dưới dạng một mảng JSON, ngay cả kết quả từ các truy vấn biểu thức vô hướng như kết quả này chỉ trả về một tài liệu duy nhất.
Chúng ta có một mảng với một tài liệu trong đó và tài liệu đó có một thuộc tính duy nhất trong đó cho biểu thức đơn trong câu lệnh SELECT.
Câu lệnh SELECT không cung cấp tên cho thuộc tính này, do đó DocumentDB tự động tạo một thuộc tính bằng cách sử dụng $ 1.
Đây thường không phải là những gì chúng tôi muốn, đó là lý do tại sao chúng tôi có thể sử dụng AS để đặt bí danh cho biểu thức trong truy vấn, đặt tên thuộc tính trong tài liệu được tạo theo cách bạn muốn, từ, trong ví dụ này.
SELECT "Hello" AS word
Khi truy vấn trên được thực thi, nó tạo ra kết quả sau.
[
{
"word": "Hello"
}
]
Tương tự, sau đây là một truy vấn đơn giản khác.
SELECT ((2 + 11 % 7)-2)/3
Truy vấn lấy kết quả sau.
[
{
"$1": 1.3333333333333333
}
]
Hãy xem một ví dụ khác về việc định hình các mảng và đối tượng nhúng lồng nhau.
SELECT
{
"words1":
["Hello", "World"],
"words2":
["How", "Are", "You?"]
} AS allWords
Khi truy vấn trên được thực thi, nó tạo ra kết quả sau.
[
{
"allWords": {
"words1": [
"Hello",
"World"
],
"words2": [
"How",
"Are",
"You?"
]
}
}
]