如何查找 MongoDB 中不包含带有特定字段值的文档的数组的文档?
对此你可以使用$nin运算符。为了理解该概念,我们使用文档创建一个集合。以下是使用文档创建集合的查询 -
> db.documentWithAParticularFieldValueDemo.insertOne( ... { ... ... "StudentId" : 101, ... "StudentDetails" : ... [ ... { ... "TheoryMarks": 78, ... "PracticalMarks": 91 ... }, ... { ... "TheoryMarks": 75, ... "PracticalMarks": 75 ... } ... ] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5c8edab72f684a30fbdfd586") } > db.documentWithAParticularFieldValueDemo.insertOne( ... ... { "StudentId" : 102, ... "StudentDetails" : [ ... { ... "TheoryMarks": 91, ... "PracticalMarks": 91 ... }, ... { ... "TheoryMarks": 75, ... "PracticalMarks": 75 ... } ... ] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5c8edaf12f684a30fbdfd587") }
在集合中,使用find()方法显示所有文档。查询如下 -
> db.documentWithAParticularFieldValueDemo.find().pretty();
以下是输出 -
{ "_id" : ObjectId("5c8edab72f684a30fbdfd586"), "StudentId" : 101, "StudentDetails" : [ { "TheoryMarks" : 78, "PracticalMarks" : 91 }, { "TheoryMarks" : 75, "PracticalMarks" : 75 } ] } { "_id" : ObjectId("5c8edaf12f684a30fbdfd587"), "StudentId" : 102, "StudentDetails" : [ { "TheoryMarks" : 91, "PracticalMarks" : 91 }, { "TheoryMarks" : 75, "PracticalMarks" : 75 } ] }
以下是查询 MongoDB 中不包含带有特定字段值的文档的数组的文档 -
> db.documentWithAParticularFieldValueDemo.find({'StudentDetails.TheoryMarks': {$nin: [78]}}).pretty();
以下是输出 -
{ "_id" : ObjectId("5c8edaf12f684a30fbdfd587"), "StudentId" : 102, "StudentDetails" : [ { "TheoryMarks" : 91, "PracticalMarks" : 91 }, { "TheoryMarks" : 75, "PracticalMarks" : 75 } ] }
广告