MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Mongoose + lodash неправилно разширява копирания масив от обект

Току-що изгубих 1 час за подобен проблем. Използвах _.assign{In}() , след това _.merge() след това опита и Document#set() винаги съм завършвал с повтарящи се записи в масива.

Заобиколното решение, което работи за мен

  • присвояване на [] към всеки масив, който предстои да бъде зададен
  • след това задайте цялото дърво с помощта на doc.set(attrs)

Пример (в моя случай, some_problematic_array предизвика същото странно поведение като въпросното):

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. mpromise (библиотеката с обещания по подразбиране на mongoose) е отхвърлена грешка при тестване

  2. Агрегиран комплексен документ на Mongodb с вложени търсения

  3. Неуспешно изпълнение на JavaScript, свързано с обвивката на mongoHQ

  4. Как да десериализирате обект на BsonDocument обратно в клас

  5. Грешка при обратна връзка:Изисква се оторизация