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?" 
         ] 
      } 
   } 
]