如何在应用程序集合中基于多个组合字段筛选文档?
你可以为这个结合 find() 来使用 $or 运算符。让我们首先创建一个带有文档的集合 -
> 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 }
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
JavaScript
PHP