DocumentDB SQL - นิพจน์สเกลาร์
ใน DocumentDB SQL อนุประโยค SELECT ยังสนับสนุนนิพจน์สเกลาร์เช่นค่าคงที่นิพจน์เลขคณิตนิพจน์เชิงตรรกะเป็นต้นโดยปกติแล้วคิวรีสเกลาร์จะไม่ค่อยใช้เนื่องจากไม่ได้ค้นหาเอกสารในคอลเล็กชันจริง ๆ เพียงแค่ประเมินนิพจน์เท่านั้น แต่ยังคงเป็นประโยชน์ในการใช้แบบสอบถามนิพจน์สเกลาร์เพื่อเรียนรู้พื้นฐานวิธีใช้นิพจน์และกำหนดรูปแบบ JSON ในแบบสอบถามและแนวคิดเหล่านี้จะนำไปใช้โดยตรงกับข้อความค้นหาจริงที่คุณจะใช้กับเอกสารในคอลเล็กชัน
มาดูตัวอย่างที่มีแบบสอบถามสเกลาร์หลายรายการ
ใน Query Explorer ให้เลือกเฉพาะข้อความที่จะดำเนินการแล้วคลิก 'เรียกใช้' มาเรียกใช้อันแรก
SELECT "Hello"
เมื่อดำเนินการค้นหาข้างต้นจะสร้างผลลัพธ์ต่อไปนี้
[
{
"$1": "Hello"
}
]
ผลลัพธ์นี้อาจดูสับสนเล็กน้อยดังนั้นเรามาดูรายละเอียดกัน
อันดับแรกอย่างที่เราเห็นในการสาธิตครั้งล่าสุดผลลัพธ์ของคิวรีจะอยู่ในวงเล็บเหลี่ยมเสมอเนื่องจากจะถูกส่งคืนเป็นอาร์เรย์ JSON แม้ผลลัพธ์จากคิวรีนิพจน์สเกลาร์เช่นนี้จะส่งคืนเฉพาะเอกสารเดียว
เรามีอาร์เรย์ที่มีเอกสารหนึ่งชุดและเอกสารนั้นมีคุณสมบัติเดียวสำหรับนิพจน์เดียวในคำสั่ง SELECT
คำสั่ง SELECT ไม่ได้ระบุชื่อสำหรับคุณสมบัตินี้ดังนั้น DocumentDB จะสร้างโดยอัตโนมัติโดยใช้ $ 1
โดยปกติจะไม่ใช่สิ่งที่เราต้องการซึ่งเป็นเหตุผลว่าทำไมเราจึงสามารถใช้ AS แทนนิพจน์ในแบบสอบถามซึ่งตั้งชื่อคุณสมบัติในเอกสารที่สร้างขึ้นในแบบที่คุณต้องการในตัวอย่างนี้
SELECT "Hello" AS word
เมื่อดำเนินการค้นหาข้างต้นจะสร้างผลลัพธ์ต่อไปนี้
[
{
"word": "Hello"
}
]
ในทำนองเดียวกันต่อไปนี้เป็นอีกหนึ่งแบบสอบถามง่ายๆ
SELECT ((2 + 11 % 7)-2)/3
แบบสอบถามดึงผลลัพธ์ต่อไปนี้
[
{
"$1": 1.3333333333333333
}
]
ลองดูตัวอย่างอื่นของการสร้างอาร์เรย์ที่ซ้อนกันและวัตถุฝังตัว
SELECT
{
"words1":
["Hello", "World"],
"words2":
["How", "Are", "You?"]
} AS allWords
เมื่อดำเนินการค้นหาข้างต้นจะสร้างผลลัพธ์ต่อไปนี้
[
{
"allWords": {
"words1": [
"Hello",
"World"
],
"words2": [
"How",
"Are",
"You?"
]
}
}
]