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

Làm cách nào để xóa các phần tử không phù hợp với điều kiện trong MongoDB?

Để loại bỏ các phần tử, hãy sử dụng $ pull và đối với các điều kiện như vậy, hãy sử dụng $ ne. $ Ne trong MongoDB được sử dụng để chọn các tài liệu có giá trị của trường không bằng giá trị đã chỉ định.

Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

> db.demo410.insertOne(
...    {
...       details: [{isMarried:false}, {isMarried:true}, {isMarried:false}, {isMarried:"Chris"}]
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e70efc515dc524f70227681")
}

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.demo410.find();

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

{ "_id" : ObjectId("5e70efc515dc524f70227681"), "details" : [ { "isMarried" : false }, { "isMarried" : true }, { "isMarried" : false }, { "isMarried" : "Chris" } ] }

Sau đây là truy vấn để loại bỏ các phần tử không phù hợp với điều kiện trong MongoDB -

> db.demo410.updateMany(
...    { "details": { "$elemMatch": { "isMarried": { "$ne": true } } } },
...    { "$pull": { "details": { "isMarried": { "$ne": true } } } }
... )
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }

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.demo410.find();

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

{ "_id" : ObjectId("5e70efc515dc524f70227681"), "details" : [ { "isMarried" : true } ] }