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

Kiểm tra tồn tại trường/embedded document trong MongoDB

Dùng $exists để kiểm tra trường có mặt

Toán tử $exists: true tìm document có trường cụ thể, $exists: false tìm document thiếu trường đó.

Dữ liệu có trường Name tùy chọn

> db.demo322.insertOne({
    'id': 1001,
    'details': [
        {'Score': 10000, Name: "Bob"},
        {'Score': 98000, Name: "Sam"}
    ]
});
> db.demo322.insertOne({
    'id': 10002,
    'details': [
        {'Score': 9000},
        {'Score': 91000}
    ]
});

Kiểm tra có document nào có details.Name không

> db.demo322.find({ "details.Name": { $exists: true } }).count() > 0;

Kết quả

True

Ứng dụng:

  • Tìm document thiếu trường: { "email": { $exists: false } }
  • Kết hợp với $elemMatch cho mảng: { "details": { $elemMatch: { "Name": { $exists: true } } } }
  • Schema validation: Bắt buộc trường với $exists: true trong validator