Монго вложенные поля, заполняющие вопрос - PullRequest
0 голосов
/ 02 июля 2018
var buyerSchema = new Schema({
   cart: [{
       id: {
           type: Schema.Types.ObjectId,
           ref: "product"
       },
       number: Number
    }],
    personName: { type: String, required: true, trim: true },
    image: { type: String, required: false, trim: true },
    email: { type: String, required: true, trim: true }
})

Как я могу заполнить поле Id

buyerMdl.findByToken(buyer['token']).populate({path: 'cart', populate: {path : 'id', model : 'product'}})

эта конкретная команда не работает для меня

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Прежде всего убедитесь, что ваш метод findByToken возвращает экземпляр find, чтобы вы могли использовать .populate() в цепочке.

Проблема в том, что вы пытаетесь заполнить свойство, на которое нет ссылки. Таким образом, вместо заполнения card и затем id s в нем, вы должны непосредственно заполнить cart.id s.

Это должно работать:

buyerMdl
    .findByToken(buyer['token'])
    .populate({
       path: 'cart.id',
       model: 'product'
     });
0 голосов
/ 02 июля 2018

Ваш id находится внутри массива карт ... Таким образом, вы должны использовать точечную запись для заполнения id

buyerMdl.findByToken(buyer['token']).populate({ path: 'cart.id' })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...