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

Bagaimana cara mengubah urutan array dengan MongoDB?

Seperti yang dikatakan @blakes-seven, Anda memiliki dua cara untuk melakukannya:

Mengambil, memperbarui, dan mendorong

db.images.find({ _id: '' }, { images : 1 })
.then(function(img) {
  var tmpImg = img.images[0];
  img.images[0] = img.images[1];
  img.images[1] = tmpImg;

  db.images.update({ _id: img._id }, { $set: { images: img.images } });
})

Memperbarui secara langsung (jika Anda memiliki gambar di klien dan mengetahui indeksnya), menggunakan $position

db.images.update({ _id: '' }, { $push: { images: { $each: ['img2'] }, $position: 0 } } } )
.then(function() {
  db.images.update({ _id: '' }, {$unset: {'images.2': 1}})
});

https://docs.mongodb.org/manual/reference/operator/update/position/

Namun, saya pikir Anda harus mendesain ulang cara Anda menyimpan gambar, menggunakan contoh pemesanan virtual:

{
  images: [
    { base64: 'img1', order: 0, _id: 'img1' },
    { base64: 'img2', order: 1, _id: 'img2' },
    { base64: 'img3', order: 2, _id: 'img3' }
  ]
}

Dengan cara ini, Anda dapat mengurutkan gambar menggunakan indeks pesanan virtual, memperbaruinya hanya menggunakan _id, atau memperbarui seluruh koleksi dengan mengubah urutan semua img2, menghapus atau mengganti gambar, dll.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Pertempuran Database NoSQL - Membandingkan Fungsi NoSQL MongoDB &MSSQL

  2. Bagaimana cara MongoDB memesan dokumen mereka dalam satu koleksi?

  3. Pembuatan Versi Objek Java MongoDB

  4. PostgreSQL vs. MongoDB

  5. Urutkan menggunakan MongoEngine?