sql >> Databáze >  >> NoSQL >> MongoDB

Mongoose + lodash nesprávně rozšiřují kopírování pole objektu

Právě jsem ztratil 1 hodinu podobným problémem. Použil jsem _.assign{In}() a poté _.merge() pak zkusil také Document#set() vždy jsem končil opakovanými položkami v poli.

Řešení, které pro mě funguje

  • přiřadit [] do libovolného pole, které se chystá nastavit
  • pak přiřaďte celý strom pomocí doc.set(attrs)

Příklad (v mém případě some_problematic_array způsobilo stejné podivné chování jako v otázce):

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. Jak vložit data do kolekce mongodb pomocí ovladače c# 2.0?

  2. Jak mohu přidat dvousloupcové jedinečné ID do mongodb v aplikaci meteor?

  3. Java:Jak vložit hashmap do MongoDB?

  4. Mongodb - dotaz na dnešní součty, týdenní součty a měsíční součty v jednom dotazu