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

Truy vấn bản ghi MongoDB không chứa trường cụ thể

Sử dụng $exists: false

Toán tử $exists kiểm tra sự tồn tại của trường. Kết hợp với $unwind để kiểm tra trong mảng lồng nhau.

Dữ liệu mẫu

> db.demo612.insertOne({
  id: 1,
  Info: [
    { Name: "Chris", Age: 21 },
    { Name: "David" }  // Thiếu trường Age
  ]
});

Truy vấn

db.demo612.aggregate([
  { $unwind: "$Info" },
  { $match: { "Info.Age": { $exists: false } } },
  { $project: { "Info.Name": 1 } }
]);

Kết quả

{ "_id": ObjectId("5e987372f6b89257f5584d87"), "Info": { "Name": "David" } }

Chỉ trả về phần tử mảng Info thiếu trường Age.