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

Sử dụng toán tử $or trong MongoDB để truy xuất bản ghi dựa trên sự tồn tại

Để truy xuất bản ghi với $or dựa trên sự tồn tại, kết hợp $or với $exists. Tạo collection mẫu:

> db.demo185.insertOne({_id:101,details:{Name:"Chris",Score:78,Subjects:{"Name":"MySQL"}}});
{ "acknowledged" : true, "insertedId" : 101 }
> db.demo185.insertOne({_id:102,details:{Name:"Bob",Score:78}});
{ "acknowledged" : true, "insertedId" : 102 }
> db.demo185.insertOne({_id:103,details:{Name:"David",Score:78,Subjects:{"Name":"MongoDB"}}});
{ "acknowledged" : true, "insertedId" : 103 }

Hiển thị tất cả tài liệu:

> db.demo185.find();

Kết quả:

Truy vấn sử dụng toán tử $or để tìm tài liệu có trường Subjects.Name tồn tại:

> db.demo185.find({
   "$or": [
      { "details.Subjects.Name": { "$exists": true } },
      { "details.Subjects.Name": { "$exists": true } }
   ]
})

Kết quả - chỉ trả về tài liệu có trường Subjects.Name:

Giải thích: Toán tử $exists: true kiểm tra sự tồn tại của trường. Lưu ý: ví dụ này lặp lại cùng điều kiện hai lần trong $or, trong thực tế bạn sẽ dùng các điều kiện khác nhau.