sql >> Database >  >> NoSQL >> MongoDB

Mongoose + lodash breiden kopieerarray van object verkeerd uit

Ik heb net 1 uur verspild aan een soortgelijk probleem. Ik heb _.assign{In}() gebruikt , dan _.merge() probeerde vervolgens ook Document#set() ik ben altijd geëindigd met herhaalde items in de array.

De oplossing die voor mij werkt

  • toewijzen [] naar elke array die op het punt staat te worden ingesteld
  • ken vervolgens de hele boom toe met behulp van doc.set(attrs)

Voorbeeld (in mijn geval some_problematic_array veroorzaakte hetzelfde vreemde gedrag als in kwestie):

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. MongoDB Update Deep Array

  2. Lua-script voor Redis dat de waarden van sleutels optelt

  3. Hoe hernoem je een veld in een array met databasecommando's?

  4. MongoLab/PyMongo verbindingsfout