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

Zastępowanie osadzonego dokumentu w tablicy w MongoDB

Używasz wzorca „tablica obiektów”. Możesz użyć operatora pozycyjnego, powinien wyglądać mniej więcej tak:

coll.update( {'_id':'2', 'users._id':'2'}, {$set:{'users.$':{ "_id":2,"name":"name6",... }}}, false, true)

Z mojego doświadczenia wynika, że ​​wzorzec „szyku obiektów” nie jest optymalny, jeśli obiekty mają naturalne ID. W Twoim przypadku można to zamodelować w następujący sposób:

{
  "_id" : "2",
  "users" : 
    { "1" : { "name" : "name1", "xyz..." : "xyz1..." }, 
      "2" : { "name" : "name2", "xyz..." : "xyz2..." }
    }
  "name" : "main name"
}

W takim przypadku możesz użyć notacji kropkowej, aby łatwo zaktualizować żądany element.

var newValue = {  "name" : "name6", "xyz..." : "xyz5...", "morefields..." : "fields..." };
coll.update({_id: 2}, { $set: { "users.2" : newValue } });



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $isNumber

  2. Jak logować zapytania wykonywane przez Spring Data MongoDB?

  3. MongoDB $gte Operator potoku agregacji

  4. Zapytanie z mangustą i daktylami

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