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

Bỏ qua giá trị null trong bản ghi MongoDB

Sử dụng $ne: null trong Aggregation

Để loại trừ các bản ghi có trường bằng null, dùng toán tử $ne (not equal) trong giai đoạn $match sau khi $unwind.

Dữ liệu mẫu

> db.demo722.insertOne({
  id: 101,
  details: [
    { Name: "" },
    { Name: "David" },
    { Name: null },
    { Name: "Carol" }
  ]
});

Truy vấn

db.demo722.aggregate([
  { $unwind: "$details" },
  { $match: { "details.Name": { $ne: null } } }
]);

Kết quả

{ "_id": ObjectId("5eab07d543417811278f5889"), "id": 101, "details": { "Name": "" } }
{ "_id": ObjectId("5eab07d543417811278f5889"), "id": 101, "details": { "Name": "David" } }
{ "_id": ObjectId("5eab07d543417811278f5889"), "id": 101, "details": { "Name": "Carol" } }

Lưu ý: Giá trị rỗng ("") không bị loại vì khác null. Để loại cả rỗng, thêm điều kiện $ne: "".