Mongodb tambahkan ke array jika tidak ada

Di MongoDB, operator $push digunakan untuk menambahkan nilai tertentu ke array. Jika bidang yang disebutkan tidak ada dalam dokumen yang akan diperbarui, operator $push menambahkannya sebagai bidang baru dan menyertakan nilai yang disebutkan sebagai elemennya. Jika bidang pemutakhiran bukan bidang jenis larik, operasi gagal

Pada saat memperbarui jika nilai itu sendiri adalah sebuah larik, operator $push menambahkan seluruh larik sebagai elemen tunggal

Jika Anda ingin menambahkan setiap elemen dari nilai secara terpisah, operator $push dapat digunakan dengan pengubah $each

Sintaksis

db.collection.update( <query>,{ $push: { <field>: <value> } })

Parameter

NamaKeteranganbidangnama kolom atau bidang ke dokumen. nilai. Ini adalah nilai yang akan ditentukan untuk bidang atau kolom. kueriKueri dapat berupa ekspresi atau kondisi atau kriteria

Koleksi sampel "siswa"

{
        "_id" : 1,
        "sem" : 1,
        "subjects" : [
                "phys",
                "chem",
                "maths",
                "gkn",
                "stat",
                "astro"
        ],
        "achieve" : [
                70,
                87,
                90,
                90,
                65,
                81
        ]
}

_

Contoh operator $push MongoDB

Jika kita ingin menambahkan 95 ke bidang array yang dicapai dengan kondisi subjek adalah "gkn", perintah mongodb berikut dapat digunakan -

> db.student.update( { "subjects" : "gkn" },{ $push: { "achieve": 95 } });

Di sini, dalam contoh di atas $each pengubah telah digunakan untuk menambahkan beberapa elemen 77,49,83 ke array reach yang cocok dengan kondisi subject sama dengan "gkn"

Anda dapat menggunakan metode updateOne() atau updateMany() untuk menambah, memperbarui, atau menghapus elemen larik berdasarkan kriteria yang ditentukan. Disarankan untuk menggunakan metode

db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}})
3 untuk memperbarui beberapa array dalam koleksi

Untuk mendemonstrasikan operasi pemutakhiran, masukkan dokumen contoh berikut ke dalam koleksi

db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}})
4

Contoh data

Salinan

db.employees.insertMany([
    { 
        _id:1,
        firstName: "John",
        lastName: "King",
        email: "[email protected]",
        salary: 5000,
        skills: [ "Angular", "React", "MongoDB" ]
    },
    { 
        _id:2,
        firstName: "Sachin",
        lastName: "T",
        email: "[email protected]",
        salary: 8000,
        skills: [ "Accounting", "Tax" ]
    },
    { 
        _id:3,
        firstName: "James",
        lastName: "Bond",
        email: "[email protected]",
        salary: 7500,
        skills: [ "Sales", "Marketing" ]
    },
    { 
        _id:4,
        firstName: "Steve",
        lastName: "J",
        email: "[email protected]",
        salary: 7000,
        skills: [ "Mac", "Marketing", "Product Design" ]
    },
    { 
        _id:5,
        firstName: "Kapil",
        lastName: "D",
        email: "[email protected]",
        salary: 4500,
        skills: [ "Accounting", "Tax", "Sales" ]
    },
    { 
        _id:6,
        firstName: "Amitabh",
        lastName: "B",
        email: "[email protected]",
        salary: 7000,
        skills: [ "Marketing", "Tax" ]
    }
])

Timpa Array

Operator

db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}})
_5 menimpa array yang ditentukan alih-alih menambahkan, menghapus, dan memperbarui elemen array

Contoh. Timpa Array

Salinan

db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}})

Keluaran

{
  acknowledged: true,
  insertedId: null,
  matchedCount: 1,
  modifiedCount: 1,
  upsertedCount: 0
}
_

Dalam contoh di atas,

db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}})
_6 menimpa larik yang ada untuk
db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}})
7

Periksa Dokumen yang Diperbarui

Salinan

db.employees.find({_id:5})

Keluaran

 {
    _id: 5,
    firstName: 'Kapil',
    lastName: 'D',
    email: '[email protected]',
    salary: 4500,
    skills: [ 'Sales Tax' ],
    department: { name: 'Finance' },
    location: 'USA'
  }

Perbarui Elemen Array

Gunakan untuk memperbarui satu atau beberapa elemen array di MongoDB

Berikut ini akan memperbarui "Pemasaran" menjadi "Berbicara di Depan Umum" di bidang larik

db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}})
8 ke semua dokumen

Contoh. Perbarui Elemen Array

Salinan

db.employees.updateMany(
    {skills:"Marketing"},
    {$set:{"skills.$":"Public Speaking"}})

Keluaran

{
  acknowledged: true,
  insertedId: null,
  matchedCount: 2,
  modifiedCount: 2,
  upsertedCount: 0
}

Dalam contoh di atas,

db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}})
_9 menentukan kriteria untuk menemukan semua dokumen di mana array
db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}})
8 berisi elemen
{
  acknowledged: true,
  insertedId: null,
  matchedCount: 1,
  modifiedCount: 1,
  upsertedCount: 0
}
1

Parameter kedua

{
  acknowledged: true,
  insertedId: null,
  matchedCount: 1,
  modifiedCount: 1,
  upsertedCount: 0
}
_2 menentukan nilai yang akan diperbarui menggunakan operator
db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}})
5.
{
  acknowledged: true,
  insertedId: null,
  matchedCount: 1,
  modifiedCount: 1,
  upsertedCount: 0
}
4 menentukan untuk memperbarui elemen menjadi "Public Speaking".
{
  acknowledged: true,
  insertedId: null,
  matchedCount: 1,
  modifiedCount: 1,
  upsertedCount: 0
}
5 adalah operator larik yang bertindak sebagai placeholder untuk kecocokan pertama dari dokumen kueri pembaruan

Contoh. Perbarui Elemen Array

Salinan

db.employees.updateMany(
    {}, 
    { $set: {"skills.$[element]":"GST"}},
    { arrayFilters: [{ element: "Tax" }]})

Keluaran

{
  acknowledged: true,
  insertedId: null,
  matchedCount: 6,
  modifiedCount: 2,
  upsertedCount: 0
}

Dalam contoh di atas,

{
  acknowledged: true,
  insertedId: null,
  matchedCount: 1,
  modifiedCount: 1,
  upsertedCount: 0
}
6 memperbarui larik
db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}})
8 jika berisi elemen "Tax" lalu memperbaruinya menjadi "GST".
{
  acknowledged: true,
  insertedId: null,
  matchedCount: 1,
  modifiedCount: 1,
  upsertedCount: 0
}
8 menentukan untuk memperbarui elemen ke "GST", dan
{
  acknowledged: true,
  insertedId: null,
  matchedCount: 1,
  modifiedCount: 1,
  upsertedCount: 0
}
9 menentukan kriteria untuk elemen array. The
db.employees.find({_id:5})
_0 menentukan bahwa elemen array find yang nilainya adalah "Pajak". Jadi, metode
db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}})
_3 akan memperbarui elemen array dengan nilai yang ditentukan oleh
db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}})
5 dan untuk elemen pencocokan yang ditentukan oleh
{
  acknowledged: true,
  insertedId: null,
  matchedCount: 1,
  modifiedCount: 1,
  upsertedCount: 0
}
9

Tambahkan Elemen Baru ke Array

Gunakan operator array

db.employees.find({_id:5})
_4 untuk menambahkan elemen baru ke array. Berikut ini akan menambahkan
db.employees.find({_id:5})
_5 elemen di semua array

Contoh. Tambahkan Elemen Array

Salinan

db.employees.updateMany(
    {},
    {$push:{"skills":"Sports"}}) // add "Sports" to all arrays

db.employees.updateMany(
    {_id:3},
    {$push:{"skills":"Sports"}}) // add "Sports" element to skills array where _id:3

Gunakan operator

db.employees.find({_id:5})
_6 untuk menentukan beberapa elemen yang perlu ditambahkan dalam array

Contoh. Tambahkan Elemen Array

Salinan

db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}})
0

Dalam contoh di atas,

db.employees.find({_id:5})
7 menentukan sebuah array untuk menambahkan beberapa elemen

Gunakan operator

db.employees.find({_id:5})
8 untuk menambahkan elemen jika belum ada

Berikut ini akan menambahkan

db.employees.find({_id:5})
_9 ke
db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}})
8 array di semua dokumen jika tidak ada

Contoh. Tambahkan Elemen Jika Tidak Ada

Salinan

db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}})
1

Hapus Elemen Pertama atau Terakhir dari Array

Gunakan operator

 {
    _id: 5,
    firstName: 'Kapil',
    lastName: 'D',
    email: '[email protected]',
    salary: 4500,
    skills: [ 'Sales Tax' ],
    department: { name: 'Finance' },
    location: 'USA'
  }
_1 untuk menghapus elemen pertama atau terakhir dari array. Tentukan 1 untuk menghapus elemen terakhir dan -1 untuk menghapus elemen pertama

Bagaimana cara menambahkan nilai ke array di MongoDB?

Jika nilainya adalah array, $push menambahkan seluruh array sebagai elemen tunggal . Untuk menambahkan setiap elemen dari nilai secara terpisah, gunakan pengubah $each dengan $push. Sebagai contoh, lihat Menambahkan Nilai ke Array dalam Banyak Dokumen. Untuk daftar pengubah yang tersedia untuk $push , lihat Pengubah.

Bagaimana cara memperbarui elemen array di MongoDB?

Anda dapat menggunakan metode updateOne() atau updateMany() untuk menambahkan, memperbarui, atau menghapus elemen larik berdasarkan kriteria yang ditentukan. Direkomendasikan untuk menggunakan metode updateMany() untuk memperbarui banyak array dalam sebuah koleksi.

Bagaimana cara memperbarui array objek bersarang di MongoDB?

Memperbarui susunan objek bersarang .
db. koleksi. .
Operator $set mengganti nilai bidang dengan nilai yang ditentukan
The filtered positional operator $[] identifies the array elements that match the arrayFilters conditions for an update operation..

Bagaimana cara menghapus elemen dari array di MongoDB?

Untuk menghapus elemen dari array, kita menggunakan operator $pull . Di dalam objek $pull kita harus menentukan key-value pair. kuncinya adalah nama properti array dari dokumen kami dan nilainya adalah filter yang ingin kami terapkan untuk menentukan elemen mana yang harus dihapus.