Để đối sánh tài liệu với các trường không chứa giá trị trong mảng, hãy sử dụng $ nin. Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -
> db.demo180.insertOne({"Scores":["80","90","110"]}); { "acknowledged" : true, "insertedId" : ObjectId("5e3988a69e4f06af551997fb") } > db.demo180.insertOne({"Scores":["110","70","60"]}); { "acknowledged" : true, "insertedId" : ObjectId("5e3988b79e4f06af551997fc") } > db.demo180.insertOne({"Scores":["40","70","1010"]}); { "acknowledged" : true, "insertedId" : ObjectId("5e3988cc9e4f06af551997fd") }
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.demo180.find();
Điều này sẽ tạo ra kết quả sau -
{ "_id" : ObjectId("5e3988a69e4f06af551997fb"), "Scores" : [ "80", "90", "110" ] } { "_id" : ObjectId("5e3988b79e4f06af551997fc"), "Scores" : [ "110", "70", "60" ] } { "_id" : ObjectId("5e3988cc9e4f06af551997fd"), "Scores" : [ "40", "70", "1010" ] }
Sau đây là truy vấn để khớp tài liệu với các trường không chứa giá trị trong mảng -
> db.demo180.aggregate({ "$match": { "Scores": { "$nin": ["110","90"] } } }).pretty();
Điều này sẽ tạo ra kết quả sau -
{ "_id" : ObjectId("5e3988cc9e4f06af551997fd"), "Scores" : [ "40", "70", "1010" ] }