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

Mongoose + lodash niepoprawnie rozszerzają tablicę kopiowania obiektu

Właśnie zmarnowałem godzinę na podobny problem. Użyłem _.assign{In}() , a następnie _.merge() następnie spróbowano także Document#set() zawsze kończyłem z powtarzającymi się wpisami w tablicy.

Obejście, które działa dla mnie

  • przypisz [] do dowolnej tablicy, która ma zostać ustawiona
  • następnie przypisz całe drzewo za pomocą doc.set(attrs)

Przykład (w moim przypadku some_problematic_array spowodował takie samo dziwne zachowanie jak w pytaniu):

var attrs = _.pick(req.body, [
    'name',
    'tags', // ...
    "some_problematic_array"
]);
var doc = ///... ;

if( attrs.some_problematic_array ) doc.some_problematic_array = [];
                                      ^^^^ ***workaround***
doc.set(attrs);


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jakiś sposób na uzyskanie zmodyfikowanego IDS z operacji zbiorczych mongodb przy użyciu mongoose?

  2. Klient MongoDB GUI (wieloplatformowy lub Linux)

  3. Usuwanie obiektu z tablicy wewnątrz kolekcji

  4. Jak wyłączyć osadzony mongodb w programie Flapdoodle w niektórych testach?

  5. MongoDB pobiera maksymalną datę wewnątrz podwójnie zagnieżdżonej tablicy