Во-первых хочу прояснить почему не срабатывает данный код, так как почти аналогичный работает.
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.
Виртуальный выделенный сервер (VDS) становится отличным выбором
с dataMessage приходит данные в виде Test: "test" хочу эти данные отправить через ajax запрос но вижу что в массив ничего не записывается
Пользователь вводит две даты в формате "December 13, 2014 00:00:00" а в ответ получает "прошло 2 года, 1 месяц 7 дней
Подскажите почему отправка jsona происходит после второго нажатия на кнопкуКод функции:
dataMessage посылает данные по очереди в виде pc: "50" mouse: "10" keyboard: "20"