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

Truy vấn MongoDB để kéo nhiều giá trị từ mảng

Để kéo các giá trị, hãy sử dụng $ pull và đặt multi:true . 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.demo392.insertOne(
...    {
...       Name: 'Chris',
...       details: [
...          {
...             _id: '101'
...
...          },
...          {
...             _id: '102'
...          }
...       ]
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e5d2b3322064be7ab44e802")
}
>
> db.demo392.insertOne(
...    {
...       Name: 'Chris',
...       details: [
...          {
...             _id: '104'
...
...          },
...          {
...             _id: '101'
...          }
...       ]
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e5d2b3422064be7ab44e803")
}

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

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

{
   "_id" : ObjectId("5e5d2b3322064be7ab44e802"), "Name" : "Chris", "details" : [
      { "_id" : "101" }, { "_id" : "102" }
   ]
}
{
   "_id" : ObjectId("5e5d2b3422064be7ab44e803"), "Name" : "Chris", "details" : [
      { "_id" : "104" }, { "_id" : "101" }
   ] 
}

Sau đây là truy vấn $ pull from array -

> db.demo392.update(
...    { },
...    { $pull: { details: { _id: '101' } } },
...    { multi: true }
... )
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })

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

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

{ "_id" : ObjectId("5e5d2b3322064be7ab44e802"), "Name" : "Chris", "details" : [ { "_id" : "102" } ] }
{ "_id" : ObjectId("5e5d2b3422064be7ab44e803"), "Name" : "Chris", "details" : [ { "_id" : "104" } ] }