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

ย้าย Element ไป Array อื่นใน MongoDB

การย้าย Element ระหว่าง Array ด้วย forEach

ใช้ forEach ตรวจสอบ Element ที่ต่างกัน และใช้ save() พร้อมเงื่อนไข

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

> db.demo646.insertOne(
...     {
...         "Information": [
...             { id: 100, Name:"Chris" },
...             { id: 100, Name:"Chris" },
...             { id: 101, Name:"David" },
...             { id: 100, Name:"Chris" }
...         ],
...         "different": []
...     }
... )
{ "acknowledged" : true, "insertedId" : ObjectId("5e9c82ec6c954c74be91e6ed") }

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

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

ผลลัพธ์:

{
    "_id" : ObjectId("5e9c82ec6c954c74be91e6ed"),
    "Information" : [
        { "id" : 100, "Name" : "Chris" },
        { "id" : 100, "Name" : "Chris" },
        { "id" : 101, "Name" : "David" },
        { "id" : 100, "Name" : "Chris" }
    ],
    "different" : [ ]
}

คิวรีย้าย Element ที่ id=101 ไป Array different

> db.demo646.find({}).forEach(function(d) {
...     d.different = d.Information.filter(function(v) { return v.id == 101 })
...     d.Information = d.Information.filter(function(v) { return v.id != 101 })
...     db.demo646.save(d)
... } ... )

แสดงเอกสารหลังย้าย

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

ผลลัพธ์:

{
    "_id" : ObjectId("5e9c82ec6c954c74be91e6ed"),
    "Information" : [
        { "id" : 100, "Name" : "Chris" },
        { "id" : 100, "Name" : "Chris" },
        { "id" : 100, "Name" : "Chris" }
    ],
    "different" : [
        { "id" : 101, "Name" : "David" }
    ]
}