mongoose Проблемы с сохранением схемы

252
19 апреля 2017, 13:19

Во-первых хочу прояснить почему не срабатывает данный код, так как почти аналогичный работает.

    User.findById(_user._id, (err,user)=>{
    if(err) return console.log(err);
    for (let i = 0; i < user.own_collections.length; i++){
         if(user.own_collections[i]._id == collection._id){
            user.own_collections[i].words.push(newWord);
            console.log('user', user.own_collections[0]);
            user.save(callback);
         }
    }
});

Функция push срабатывает нормально, так как в консоле выводится обновлённый объект.

Во-вторых: я понимаю что так как я осуществил поиск это не правильно, так что прошу совета как это можно организовать правильно. Чтобы бы было понятнее что надо: Имеется такой объект (пользователь){ "_id": "58f379e71a2f1660daa015a4", "email": "email@gmail.com", "username": "Pierre Deuj", "password": "$2a$10$8Wifui1/mjjq36IML7bLFuseXk5Iun5eTDbsdnX2XIzDaqQAnghL2", "own_collections": [ { "name": "new collection", "description": "lorem ipsum", "_id": "58f4b3521910ee0734404d34", "words": [ { "english": "lorem", "russian": "ипсум", "example": "", "_id": "58f4db84f123fa455b520235" } ] }, { "name": "new collection1", "description": "lorem ipsum", "_id": "58f4b3741910ee0734404d3e", "words": [] } ], "added_collections": [ "58f376eeb553965cd3c3a19b" ], "__v": 54 }

так вот надо произвести поиск такого вида: 1)Сначала найти этого пользователя - это я умею (findOne / findById); 2)У этого пользователя есть поле own_collections; 3)В поле own_collections необходимо найти объект (по id или ещё как-то неважно); 4)В поле words этого объекта добавить(push) другой объект

Буду благодарен за любую помощь, хочу понять как правильно работать с mongodb.

READ ALSO
Поставить в массив и отправить через ajax

Поставить в массив и отправить через ajax

с dataMessage приходит данные в виде Test: "test" хочу эти данные отправить через ajax запрос но вижу что в массив ничего не записывается

203
Проблема с условиями для вывода разници между датами

Проблема с условиями для вывода разници между датами

Пользователь вводит две даты в формате "December 13, 2014 00:00:00" а в ответ получает "прошло 2 года, 1 месяц 7 дней

296
отправка jsona после 2 нажатия на кнопку

отправка jsona после 2 нажатия на кнопку

Подскажите почему отправка jsona происходит после второго нажатия на кнопкуКод функции:

190
Отправка массива через ajax

Отправка массива через ajax

dataMessage посылает данные по очереди в виде pc: "50" mouse: "10" keyboard: "20"

220