การ Query ค่าใน List ด้วย Positional Operator
เพื่อ Query ค่าใน List ให้ใช้ Positional Operator ($) ใน MongoDB
สร้าง Collection พร้อมข้อมูล
> db.demo628.insertOne({id:1,Name:["Chris","David","John"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e9ae7ea6c954c74be91e6b6") }
> db.demo628.insertOne({id:1,Name:["Carol","Sam"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e9ae7f26c954c74be91e6b7") }
> db.demo628.insertOne({id:2,Name:["Mike","Sam","John"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e9ae8056c954c74be91e6b8") }
แสดงเอกสารทั้งหมด
> db.demo628.find();
ผลลัพธ์:
{ "_id" : ObjectId("5e9ae7ea6c954c74be91e6b6"), "id" : 1, "Name" : [ "Chris", "David", "John" ] }
{ "_id" : ObjectId("5e9ae7f26c954c74be91e6b7"), "id" : 1, "Name" : [ "Carol", "Sam" ] }
{ "_id" : ObjectId("5e9ae8056c954c74be91e6b8"), "id" : 2, "Name" : [ "Mike", "Sam", "John" ] }
คิวรีค่าที่ตรงกับ John
> db.demo628.find({"Name":"John"}, {"id":1, "Name.$":1});
ผลลัพธ์:
{ "_id" : ObjectId("5e9ae7ea6c954c74be91e6b6"), "id" : 1, "Name" : [ "John" ] }
{ "_id" : ObjectId("5e9ae8056c954c74be91e6b8"), "id" : 2, "Name" : [ "John" ] }