@deadkEEper1

Как запушить объект во вложенный в объект массив, mongo?

Есть mongo модель
var userSchema = new Schema({

    name:{
        required: true,
        type: String
    },
    email:{
        unique: true,
        required: true,
        type: String

    },
    password:{
        required: true,
        type: String
    },

    admin: {
        type: Boolean,
        default: false
    },

    posts: [{
     type: mongoose.Schema.Types.ObjectId,
      ref: 'users'
}],

    friends: {           // object
        incomeRequests:[{   //array in object
            type: mongoose.Schema.Types.ObjectId,
            ref: 'users'
        }],
        outcomeRequests:[{
            type: mongoose.Schema.Types.ObjectId,
            ref: 'users'

        }],
        friends: [{
            type: mongoose.Schema.Types.ObjectId,
            ref: 'users'

        }]
    }
});


Если с постами проблем не возникает
User.update({_id: accountId}, {$push:{'posts':postObj}}, function(err, post){
        if(err){
            console.log(err)
            res.end()
        }else{
            console.log(post)
            res.end()
        }
    });


То каким образом запушить объект во вложенный массив, допустим, friends.incomeRequests? Спасибо
  • Вопрос задан
  • 2508 просмотров
Решения вопроса 1
@deadkEEper1 Автор вопроса
Все просто, надо было делать как с обычными вложенными массивами
{$push:{'friends.incomeRequests':obj}}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@werw
{"$push": {имя поля с массивом: новый добавляемый элемент массива}}
Прекрасно работает с findAndModify
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы