Mongoose / MongoDB - простой пример добавления к массиву объектов документа с предопределенной схемой

Ради простоты, предположим, что это схемы моей коллекции:

var MessageDeliverySchema = new Schema({
    from   : { type : String },
    to     : { type : String },
    status : { type : String }
});

var Messages = mongoose.model('messages',
new Schema({
    id              : ObjectId,
    user            : { type:String },
    'sent-messages' : [MessageDeliverySchema]
}));

Итак, каждый документ в коллекцииMessages может иметь 4/5sent-messages определяется MessageDeliverySchema.

Что я хочу сделать, это иметь массивsent-messages, поэтому каждый раз, когда приходит квитанция о доставке, я просто обновляюMessages и добавьте еще одно отправленное сообщение.

Что я пробовал:

var delivered = {
from: 'foo',
to: 'bar',
status: 'delivered'
};

Message.update({_id: '5064aae4154cb34d14000001' },
        {$pushAll: { 'sent-messages' : delivered }} , {upsert:true}, function(err, data) { 

});

Message.update({_id: '5064aae4154cb34d14000001' },
         {$push: { 'sent-messages' : delivered }},{upsert:true}, function(err, data) { 
});

$ pushAll и $ push не добавляют новый объект вsent-messagesвместо этого перезаписывает существующее сообщение.

Я хочу видеть массив отправленных сообщений, например:

{
    'sent-messages': [
        {
            from: 'foo',
            to: 'bar',
            status: 'delivered'
        },
        {
            from: 'pippo',
            to: 'pippo',
            status: 'delivered'
        },
        {
            from: 'paul',
            to: 'smith',
            status: 'undelivered'
        }
    ]
}

Ответы на вопрос(1)

Ваш ответ на вопрос