如何在具有多个组合字段的过滤器的集合中查找MongoDB文档?
您可以与此同时使用$or运算符find()
。首先让我们创建一个包含文档的集合-
> db.findDocumentWithFilterDemo.insertOne({"ClientName":"Robert","IsMarried":false}); { "acknowledged" : true, "insertedId" : ObjectId("5cd4fd1e2cba06f46efe9ef1") } > db.findDocumentWithFilterDemo.insertOne({"ClientName":"Chris","IsMarried":true}); { "acknowledged" : true, "insertedId" : ObjectId("5cd4fd322cba06f46efe9ef2") } > db.findDocumentWithFilterDemo.insertOne({"ClientName":"David","IsMarried":true}); { "acknowledged" : true, "insertedId" : ObjectId("5cd4fd3b2cba06f46efe9ef3") } > db.findDocumentWithFilterDemo.insertOne({"ClientName":"Carol","IsMarried":true}); { "acknowledged" : true, "insertedId" : ObjectId("5cd4fd452cba06f46efe9ef4") }
以下是在find()
方法的帮助下显示集合中所有文档的查询-
> db.findDocumentWithFilterDemo.find().pretty();
这将产生以下输出-
{ "_id" : ObjectId("5cd4fd1e2cba06f46efe9ef1"), "ClientName" : "Robert", "IsMarried" : false } { "_id" : ObjectId("5cd4fd322cba06f46efe9ef2"), "ClientName" : "Chris", "IsMarried" : true } { "_id" : ObjectId("5cd4fd3b2cba06f46efe9ef3"), "ClientName" : "David", "IsMarried" : true } { "_id" : ObjectId("5cd4fd452cba06f46efe9ef4"), "ClientName" : "Carol", "IsMarried" : true }
以下是查询以在多个组合字段上具有过滤器的集合中查找文档-
> db.findDocumentWithFilterDemo.find({ $or: [ { "ClientName": { $ne:"Robert" } }, { "IsMarried": { $ne: false } } ] } );
这将产生以下输出-
{ "_id" : ObjectId("5cd4fd322cba06f46efe9ef2"), "ClientName" : "Chris", "IsMarried" : true } { "_id" : ObjectId("5cd4fd3b2cba06f46efe9ef3"), "ClientName" : "David", "IsMarried" : true } { "_id" : ObjectId("5cd4fd452cba06f46efe9ef4"), "ClientName" : "Carol", "IsMarried" : true }