squadbrodyaga
@squadbrodyaga
татарский богатырь

Как добавить данные в массив MongoDB?

Здравствуйте, подскажите как добавить данные в массив MongoDB.
Если быть конкретнее, то если пользователь перешел по реферальной ссылке, то его нужно
добавить в массив (referrals = []) человека который пригласил этого самого реферала.

Вот так выглядит схема пользователя:
userSchema
const userSchema = new Schema({
    login: {
        type: String,
        required: true
    },
    email: {
        type: String,
        required: true
    },
    password: {
        type: String,
        required: true
    },
    referrals: []
})

// Так я ищу человека, по ссылке которого перешли
const referrer = await User.findOne({ _id: req.query.ref })

// Так я сохраняю нового пользователя в базу данных
const user = new User({ 
    login: ...,
    email: ...,
    password: ...
})
await user.save()

// А это я пытался добавить нового реферала в массив, пользователь которого его пригласил.
referrer.update({
    referrals: user
})
// Но моя татарская логика меня подвела и такой код не сработал

Можете подсказать, что нужно делать? Спасибо.
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
yarkov
@yarkov
Проект "Жизнь после смерти" - lifeafterdeath.ru
Как-то так:
const userSchema = new Schema({
    login: {
        type: String,
        required: true
    },
    email: {
        type: String,
        required: true
    },
    password: {
        type: String,
        required: true
    },
    referrals: [{
      type: Schema.Types.ObjectId,
      ref: 'User',
    }]
})


referrer.update({
    $push: {
        referrals: user._id
    }
})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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