MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Masukkan Nilai pada Posisi Tertentu dalam Array di MongoDB

Di MongoDB, Anda dapat menggunakan $push operator untuk menambahkan nilai ke array.

Operator ini dapat digunakan dengan berbagai modifier, salah satunya adalah $position pengubah. $position modifier memungkinkan Anda untuk menentukan posisi dalam larik yang ingin Anda sisipkan nilai baru.

Tambahkan Nilai ke Awal Array

Misalkan kita memiliki koleksi berikut:

{ "_id" :1, "prod" :"Bat", "sizes" :[ "S", "M", "XL" ] }{ "_id" :2, "prod" :"Topi" , "ukuran" :[ "S", "L", "XL" ] }{ "_id" :3, "prod" :"Cap", "sizes" :[ "M", "L" ] } 

Dan misalkan kita ingin menambahkan nilai ke awal array di dokumen 3.

Kita bisa melakukan ini:

db.products.update(
   { _id: 3 },
   { 
     $push: { 
        sizes: {
           $each: [ "S" ],
           $position: 0
        }
      } 
    }
) 

Sekarang mari kita periksa kembali koleksinya:

db.products.find() 

Hasil:

{ "_id" :1, "prod" :"Bat", "sizes" :[ "S", "M", "XL" ] }{ "_id" :2, "prod" :"Topi" , "ukuran" :[ "S", "L", "XL" ] }{ "_id" :3, "prod" :"Cap", "sizes" :[ "S", "M", "L" ] }

Array berbasis nol, jadi position: 0 menambahkan nilai sebagai elemen pertama dalam array.

Tambahkan Nilai ke Tengah Array

Misalkan kita ingin menambahkan nilai M untuk mendokumentasikan 2, dan kami ingin berada di antara S dan L .

Inilah cara kami melakukannya:

db.products.update(
   { _id: 2 },
   { 
     $push: { 
        sizes: {
           $each: [ "M" ],
           $position: 1
        }
      } 
    }
) 

Sekarang mari kita periksa kembali koleksinya:

db.products.find() 

Hasil:

{ "_id" :1, "prod" :"Bat", "sizes" :[ "S", "M", "XL" ] }{ "_id" :2, "prod" :"Topi" , "ukuran" :[ "S", "M", "L", "XL" ] }{ "_id" :3, "prod" :"Cap", "sizes" :[ "S", "M" , "L" ] }

Kami menggunakan $position: 1 , karena itulah posisi yang kita inginkan M untuk pergi (yaitu posisi kedua).

Nilai Negatif

Anda juga dapat memberikan nilai negatif sebagai posisi. Saat Anda melakukan ini, nilai dimasukkan pada posisi negatif yang ditentukan, menghitung mundur dari akhir.

Misalkan kita ingin menyisipkan L di antara M dan XL dalam dokumen 1.

Inilah cara kami melakukannya dengan menggunakan posisi negatif:

db.products.update(
   { _id: 1 },
   { 
     $push: { 
        sizes: {
           $each: [ "L" ],
           $position: -1
        }
      } 
    }
) 

Periksa hasilnya:

db.products.find() 

Hasil:

{ "_id" :1, "prod" :"Bat", "sizes" :[ "S", "M", "L", "XL" ] }{ "_id" :2, "prod" :"Topi", "ukuran" :[ "S", "M", "L", "XL" ] }{ "_id" :3, "prod" :"Cap", "ukuran" :[ "S" , "M", "L" ] }

Dengan posisi indeks negatif, jika Anda menentukan beberapa elemen di $each array, elemen terakhir yang ditambahkan berada di posisi yang ditentukan dari akhir.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Menyiapkan koneksi tunggal dengan node.js dan mongo

  2. Bagaimana mengembalikan data JSON dari php MongoCursor

  3. Pencarian Teks MongoDB DAN beberapa kata pencarian

  4. menyimpan gambar ke mongodb

  5. WiredTiger dan pembaruan di tempat