MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak zmienić kolejność tablicy za pomocą MongoDB?

Jak powiedział @blakes-seven, możesz to zrobić na dwa sposoby:

Pobieranie, aktualizowanie i wypychanie

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 } });
})

Bezpośrednia aktualizacja (jeśli masz obraz na kliencie i znasz indeksy), używając $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/

Myślę jednak, że powinieneś przeprojektować sposób, w jaki przechowujesz swoje obrazy, używając na przykład wirtualnego zamawiania:

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

W ten sposób możesz uporządkować swoje obrazy za pomocą wirtualnego indeksu zamówień, aktualizując je za pomocą tylko _id lub aktualizując całą kolekcję, zmieniając kolejność wszystkich img2, upuszczając lub zastępując obraz itp.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. ScaleGrid ogłasza współdzielony hosting MongoDB na Amazon AWS

  2. Samouczek MongoDB na rok 2022 – Dowiedz się, czym jest MongoDB?

  3. MongoDB $dzielenie

  4. Aktualizacja MongoDB z warunkiem

  5. Jak zdobyć ostatnie N rekordów w mongodb?