Мангуст, как обновить поле вложенного документа? - PullRequest
0 голосов
/ 22 сентября 2018

Это моя схема

var UserSchema = new Schema({

    username: String,
    email: String,
    password: String,
    company: String,
    contact: Number,
    country: String,
    isLoggedIn: Boolean,
    createdOn: { type: Date, default: Date.now },
    ads: [{ type: Schema.Types.ObjectId, ref: 'Ad' }],
    notification: {
        counter: {type: Number, default: 0},
        notidata: [{ itemdate: { type: Date, default: Date.now }, data: {type: String}}]
    }

});


var User = module.exports = mongoose.model('User', UserSchema);

Я пытаюсь вставить данные в messages.notidata.data следующим способом, и он, кажется, не работает.

User.findByIdAndUpdate(newuser.id, {
  '$set': {
    'notification.$.counter': '1',
    'notification.$.notidata.data': 'two updated'
  }
}, function(err, post) {

  if (err) {
    console.log(err)
  } else {
    console.log(post);
  }
});

Похоже, я не понимаю, как получить доступ к этому документированному полю, называемому данными.

1 Ответ

0 голосов
/ 22 сентября 2018

Попробуйте $set как:

  '$set': {
    'notification.counter': '1',
    'notification.notidata.0.data': 'two updated'
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...