Đối với điều này, bạn có thể sử dụng $ cond cùng với $ anyElementTrue. Giá trị NULL (không có trường) sẽ đánh giá thành FALSE. Cùng với đó, một mảng trống cũng trả về FALSE với $ anyElementTrue.
Trước tiên, hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -
> db.presenceDemo.insertOne ({"StudentName":null}); {"nition ":true," insertId ":ObjectId (" 5e06f70c25ddae1f53b621f3 ")}> db.presenceDemo.insertOne ({" StudentName ":" Chris "}); {" Recognition ":true," insertId ":ObjectId (" 5e06f71425ddae1f53b621f4 ")}> db.presenceDemo.insertOne ({" StudentName ":null}); {"nition":true, "insertId":Đối tượngSau đây là truy vấn để hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find () -
> db.presenceDemo.find ();Điều này sẽ tạo ra kết quả sau -
{"_id":ObjectId ("5e06f70c25ddae1f53b621f3"), "StudentName":null} {"_id":ObjectId ("5e06f71425ddae1f53b621f4"), "StudentName":"Chris"} {"_id":ObjectId " ")," StudentName ":null} {" _id ":ObjectId (" 5e06f71e25ddae1f53b621f6 ")," StudentName ":" David "}Đây là truy vấn để triển khai trường $ cond dựa trên sự hiện diện hoặc vắng mặt của trường -
> db.presenceDemo.aggregate ([... {"$ project":{... "MyValue":{... "$ cond":[... {"$ anyElementTrue":[[" $ StudentName "]]}, ... 1, ... 0 ...] ...} ...}} ...]);Điều này sẽ tạo ra kết quả sau -
{"_id":ObjectId ("5e06f70c25ddae1f53b621f3"), "MyValue":0} {"_id":ObjectId ("5e06f71425ddae1f53b621f4"), "MyValue":1} {"_id":Đối tượng , "MyValue":0} {"_id":ObjectId ("5e06f71e25ddae1f53b621f6"), "MyValue":1}