Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Truy vấn MongoDB với điều kiện phức hợp (compound conditions)

Sử dụng toán tử $in để khớp tài liệu có giá trị trường nằm trong mảng cho trước. Tạo collection nhân viên:

> db.demo714.insertOne({FirstName:"Chris",LastName:"Brown"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea9a2da85324c2c98cc4c2b") }
> db.demo714.insertOne({FirstName:"Adam",LastName:"Smith"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea9a2e585324c2c98cc4c2c") }
> db.demo714.insertOne({FirstName:"David",LastName:"Miller"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea9a2ed85324c2c98cc4c2d") }
> db.demo714.insertOne({FirstName:"John",LastName:"Doe"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea9a2f785324c2c98cc4c2e") }

Hiển thị tất cả:

> db.demo714.find();
{ "_id" : ObjectId("5ea9a2da85324c2c98cc4c2b"), "FirstName" : "Chris", "LastName" : "Brown" }
{ "_id" : ObjectId("5ea9a2e585324c2c98cc4c2c"), "FirstName" : "Adam", "LastName" : "Smith" }
{ "_id" : ObjectId("5ea9a2ed85324c2c98cc4c2d"), "FirstName" : "David", "LastName" : "Miller" }
{ "_id" : ObjectId("5ea9a2f785324c2c98cc4c2e"), "FirstName" : "John", "LastName" : "Doe" }

Truy vấn tìm nhân viên họ Brown HOẶC Miller:

> db.demo714.find({"LastName":{$in:["Miller","Brown"]}});

Kết quả:

{ "_id" : ObjectId("5ea9a2da85324c2c98cc4c2b"), "FirstName" : "Chris", "LastName" : "Brown" }
{ "_id" : ObjectId("5ea9a2ed85324c2c98cc4c2d"), "FirstName" : "David", "LastName" : "Miller" }

Các toán tử logic phổ biến:

  • $in: Giá trị nằm trong mảng (OR)
  • $nin: Giá trị KHÔNG nằm trong mảng
  • $and: Tất cả điều kiện phải đúng
  • $or: Ít nhất một điều kiện đúng
  • $nor: Không điều kiện nào đúng