Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

MongoDB: ค้นหาในอาร์เรย์ออบเจ็กต์ และจับคู่ฟิลด์อีเมล


สร้างคอลเลกชันตัวอย่าง

> db.demo144.insertOne({"EmployeeDetails":[{"EmployeeName":"Chris","EmployeeEmail":"Chris12@gmail.com"},{"EmployeeName":"Bob","EmployeeEmail":"bo22@gmail.com"}]});
{ "acknowledged": true, "insertedId": ObjectId("5e32f1d8fdf09dd6d08539b9") }
> db.demo144.insertOne({"EmployeeDetails":[{"EmployeeName":"David","EmployeeEmail":"david@gmail.com"},{"EmployeeName":"Carol","EmployeeEmail":"Carol@gmail.com"}]});
{ "acknowledged": true, "insertedId": ObjectId("5e32f1f5fdf09dd6d08539ba") }

แสดงข้อมูล

> db.demo144.find();
{ "_id": ObjectId("5e32f1d8fdf09dd6d08539b9"), "EmployeeDetails": [ { "EmployeeName": "Chris", "EmployeeEmail": "Chris12@gmail.com" }, { "EmployeeName": "Bob", "EmployeeEmail": "bo22@gmail.com" } ] }
{ "_id": ObjectId("5e32f1f5fdf09dd6d08539ba"), "EmployeeDetails": [ { "EmployeeName": "David", "EmployeeEmail": "david@gmail.com" }, { "EmployeeName": "Carol", "EmployeeEmail": "Carol@gmail.com" } ] }

คิวรี: หาเอกสารที่มี EmployeeName=David และ EmployeeEmail=david@gmail.com

โปรเจกชันแสดงเฉพาะ EmployeeName:

> db.demo144.find({"EmployeeDetails.EmployeeName":"David","EmployeeDetails.EmployeeEmail":"david@gmail.com"},{"EmployeeDetails.EmployeeName":1});

ผลลัพธ์: ได้เอกสารที่สอง พร้อม EmployeeName ทั้งสองในอาร์เรย์

{ "_id": ObjectId("5e32f1f5fdf09dd6d08539ba"), "EmployeeDetails": [ { "EmployeeName": "David" }, { "EmployeeName": "Carol" } ] }