@DeniSidorenko

Как реализовать функцию связи в mongodb?

Дано. Страница создании продукта и страница создании категории.
У них есть след схемы
const {Schema, model, Types} = require('mongoose')

const schema = new Schema({
  name: {type: String, required: true},
  price: {type: Number, required: true},
  rating: {type: Number, default: 4.7},
  weight: {type: String, required: true},
  image: { type: String, trim: true},
  category: {type: Types.ObjectId, ref: "MyCategory"}
})


module.exports = model("MyProduct", schema)


const {Schema, model, Types} = require('mongoose')

const schema = new Schema({
  name: {type: String, required: true, unique: true},
  image: {type: String, required: true},
  owner: [{
    type: Types.ObjectId,
    ref: "MyProduct"
  }]
})

module.exports = model("MyCategory", schema)


При добавлении продукта, я сделал select, в котором есть все категории, с value их id( получаю категории методом get из база данных)
И для product более менее верно все формируется
К примеру так
image.png

Но как я понимаю, я жестко выдаю id категории , и думаю что не правильно, ибо сами категории не добавляют продукт в свой массив owner
image.png

UPDATE. Да конечно можно зайти на странице категории, получить ид категории, потом все продукты, и по ид к какой категории относятся фильтровать. Но я думаю коректнее было если бы ид продуктов сразу был в массиве owner
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы