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

คิวรี MongoDB ค้นหาเอกสารด้วย FirstName และ LastName เฉพาะเจาะจง

ใช้ $and ร่วมกับ $in ใน find() เพื่อค้นหาเอกสารที่ตรงกับเงื่อนไข FirstName และ LastName หลายค่า

ตัวอย่างข้อมูลทดสอบ

> db.demo692.insertOne({FirstName: "Chris", "LastName": "Brown"});
{ "acknowledged": true, "insertedId": ObjectId("5ea585dca7e81adc6a0b396a") }
> db.demo692.insertOne({FirstName: "John", "LastName": "Brown"});
{ "acknowledged": true, "insertedId": ObjectId("5ea585e2a7e81adc6a0b396b") }
> db.demo692.insertOne({FirstName: "John", "LastName": "Smith"});
{ "acknowledged": true, "insertedId": ObjectId("5ea585e7a7e81adc6a0b396c") }
> db.demo692.insertOne({FirstName: "John", "LastName": "Doe"});
{ "acknowledged": true, "insertedId": ObjectId("5ea585efa7e81adc6a0b396d") }
> db.demo692.insertOne({FirstName: "Adam", "LastName": "Smith"});
{ "acknowledged": true, "insertedId": ObjectId("5ea585faa7e81adc6a0b396e") }

แสดงข้อมูลทั้งหมด

> db.demo692.find();

ผลลัพธ์

{
  "_id": ObjectId("5ea585dca7e81adc6a0b396a"), "FirstName": "Chris", "LastName": "Brown"
}
{
  "_id": ObjectId("5ea585e2a7e81adc6a0b396b"), "FirstName": "John", "LastName": "Brown"
}
{
  "_id": ObjectId("5ea585e7a7e81adc6a0b396c"), "FirstName": "John", "LastName": "Smith"
}
{
  "_id": ObjectId("5ea585efa7e81adc6a0b396d"), "FirstName": "John", "LastName": "Doe"
}
{
  "_id": ObjectId("5ea585faa7e81adc6a0b396e"), "FirstName": "Adam", "LastName": "Smith"
}

ค้นหา FirstName เป็น Chris หรือ John และ LastName เป็น Brown หรือ Smith

> db.demo692.find({
    $and: [
      { FirstName: { $in: ["Chris", "John"] } },
      { LastName: { $in: ["Brown", "Smith"] } }
    ]
  });

ผลลัพธ (3 เอกสารตรงเงื่อนไข)

{
  "_id": ObjectId("5ea585dca7e81adc6a0b396a"), "FirstName": "Chris", "LastName": "Brown"
}
{
  "_id": ObjectId("5ea585e2a7e81adc6a0b396b"), "FirstName": "John", "LastName": "Brown"
}
{
  "_id": ObjectId("5ea585e7a7e81adc6a0b396c"), "FirstName": "John", "LastName": "Smith"
}

คำอธิบาย:

  • $in: ["Chris", "John"] - FirstName ต้องเป็น Chris หรือ John
  • $in: ["Brown", "Smith"] - LastName ต้องเป็น Brown หรือ Smith
  • $and - ทั้งสองเงื่อนไขต้องเป็นจริงพร้อมกัน (AND logic)

ตัวเลือกอื่น: ใช้ $or สำหรับเงื่อนไขแบบ OR ระหว่างคู่ FirstName+LastName