Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

ลบค่าจาก Matrix-like Document ใน MongoDB

การลบค่าจาก Matrix ด้วย $pull

เพื่อลบค่าจาก Matrix ให้ใช้ $pull ใน MongoDB

สร้าง Collection พร้อมข้อมูล

> db.demo632.insertOne(
...     {
...         "arrayMatrix": [
...             [10,20],
...             [10,20],
...             [10,20],
...             [10,20],
...             [10,20],
...             [10,20]
...         ]
...     }
... );
{ "acknowledged" : true, "insertedId" : ObjectId("5e9b27b46c954c74be91e6c0") }

แสดงเอกสารทั้งหมด

> db.demo632.find().pretty();

ผลลัพธ์:

{
    "_id" : ObjectId("5e9b27b46c954c74be91e6c0"),
    "arrayMatrix" : [
        [ 10, 20 ],
        [ 10, 20 ],
        [ 10, 20 ],
        [ 10, 20 ],
        [ 10, 20 ],
        [ 10, 20 ]
    ]
}

คิวรีลบค่า 20 จากทุก Sub-array

> db.demo632.update(
...     {},
...     {
...         "$pull": {
...             "arrayMatrix.0": 20,
...             "arrayMatrix.1": 20,
...             "arrayMatrix.2": 20,
...             "arrayMatrix.3": 20,
...             "arrayMatrix.4": 20,
...             "arrayMatrix.5": 20
...         }
...     }
... )
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

แสดงเอกสารหลังลบค่า

> db.demo632.find().pretty();

ผลลัพธ์:

{
    "_id" : ObjectId("5e9b27b46c954c74be91e6c0"),
    "arrayMatrix" : [
        [ 10 ],
        [ 10 ],
        [ 10 ],
        [ 10 ],
        [ 10 ],
        [ 10 ]
    ]
}