Заполнение после сохранения - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть этот кусок кода:

message.save().then(message => {
    let result = {
        ok: true,
        message
    }
    res.send(result);
})

Что дает этот json:

{
    "ok": true,
    "message": {
        "_id": "5c5fe65236bcc31eb0a3db46",
        "from": "5c5f1f1c4042b431d4611127",
        "to": "5c5f201b4042b431d4611128",
        "message": "Con imagen",
        "image": "img/1549788754143.jpg",
        "sent": "2019-02-10T08:52:34.144Z",
        "__v": 0
    }
}

Я хочу заполнить поле from, что является лучшим способом сделать это?Я использовал populate только после .find () и не могу найти способ сделать это.

.save () не позволяет использовать .populate ()

1 Ответ

0 голосов
/ 10 февраля 2019

Это сработало:

message.save().then(savedMessage => {
            Message.findById(savedMessage._id).populate('from').then(data => {
                let result = {
                    ok: true,
                    data
                }
                res.send(result);
            })
        })

.save () не имеет метода .populate (), поэтому этот трюк позволяет возвращать заполненное поле в веб-сервисе, что довольно полезно.

JSON, который возвращает этот веб-сервис, теперь выглядит так:

{
    "ok": true,
    "data": {
        "_id": "5c60791c834b900bf0383440",
        "from": {
            "_id": "5c5f1f1c4042b431d4611127",
            "name": "admin",
            "password": "03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4",
            "image": "img/1549737756964.jpg",
            "__v": 0
        },
        "to": "5c5f201b4042b431d4611128",
        "message": "Con imagen",
        "image": "img/1549826332017.jpg",
        "sent": "2019-02-10T19:18:52.018Z",
        "__v": 0
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...