Push mongodb ke array jika tidak ada

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.
db.employees.find({_id:5})
0 menentukan bahwa elemen larik 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 array untuk menambahkan beberapa elemen

Gunakan operator

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

Berikut ini akan menambahkan array

db.employees.find({_id:5})
9 ke
db.employees.updateMany({_id:5},{$set:{ skills:["Sales Tax"]}})
8 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 mendorong nilai ke dalam 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 array objek di MongoDB?

Untuk melakukan pembaruan pada semua elemen larik tersemat dari setiap dokumen yang cocok dengan kueri Anda, gunakan operator posisi yang difilter $[ ] menentukan elemen larik yang cocok dalam dokumen pembaruan.

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?

Operator $pop . Operator $pop digunakan untuk menghapus elemen pertama atau terakhir dari sebuah array. Ini memberikan nilai -1 untuk menghapus elemen pertama dan 1 untuk menghapus elemen terakhir dari sebuah array.