Computer >> Máy Tính >  >> Lập trình >> MongoDB

Làm cách nào để tìm tài liệu MongoDB trong bộ sưu tập có bộ lọc trên nhiều trường kết hợp?

Bạn có thể sử dụng $ hoặc toán tử cùng với find () cho việc này. 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.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")
}

Sau đâ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.findDocumentWithFilterDemo.find().pretty();

Điều này sẽ tạo ra kết quả sau -

{
   "_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
}

Sau đây là truy vấn để tìm tài liệu trong bộ sưu tập với bộ lọc trên nhiều trường kết hợp -

> db.findDocumentWithFilterDemo.find({  $or: [ { "ClientName": { $ne:"Robert" } }, { "IsMarried": { $ne: false } }  ] } );

Điều này sẽ tạo ra kết quả sau -

{ "_id" : ObjectId("5cd4fd322cba06f46efe9ef2"), "ClientName" : "Chris", "IsMarried" : true }
{ "_id" : ObjectId("5cd4fd3b2cba06f46efe9ef3"), "ClientName" : "David", "IsMarried" : true }
{ "_id" : ObjectId("5cd4fd452cba06f46efe9ef4"), "ClientName" : "Carol", "IsMarried" : true }