Как бы вы заполнили ссылки, вложенные в объект массива, используя mongoose? - PullRequest
0 голосов
/ 10 октября 2018

Как бы вы заполнили поля продукта внутри массива корзины ниже?

{
    "_id": "5bbd1c6e2c48f512fcd733b4",
    "cart": [
        {
            "count": 1,
            "_id": "5bbd30ed9417363f345b15fc",
            "product": "5ba93a6d5d907d9512e43b75"
        }
        {
            "count": 2,
            "_id": "5bbd30ed9417363f345babcc",
            "product": "5ba93a6d5d2359512e43b75"
        }
        ],
    "totalItems": 0,
    "name": "kellie"
}

Схема:

const usersSchema = new mongoose.Schema({
    cart: [
        {
            product: {type: mongoose.Schema.Types.ObjectId, ref: 'product'},
            count: {type: Number},
        },
    ],
    totalItems: {type: Number, default: 0},
    totalPrice: {type: Number},
});

Iбезуспешно пытался найти решение.

1 Ответ

0 голосов
/ 10 октября 2018

Я воспроизвел вашу схему (основная часть с cart.product), и у меня не было проблем с заполнением обычным методом populate.exec():

var result = Author.findOne({ _id: "5bbd93a29fceda195bec8665" })
.populate("books.book")
.exec()
.then(result => {
  console.log(result)
})

В схеме моего автора была та же самая вещь card.product, но онаbooks.book:

var AuthorSchema = new Schema({
  books: [{
      book: { type: Schema.Types.ObjectId, ref: "Book" },
      count: {type: Number}
    }
  ]
}

То же самое происходит с Author.find({}) и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...