Как использовать Mon goose Заполните между 2 различными схемами - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть 2 схемы, категории и карты. Каждая категория имеет массив карточек, и я хочу заполнить этот массив значениями, но я не уверен, как go об этом, так как документация mon goose несколько сбивает с толку для понимания.

// Схемы в отдельных файлах // Схема категории

const mongoose = require("mongoose");
const Schema = mongoose.Schema;

const categorySchema = new Schema({
  title: {
    type: String,
    trim: true,
    max: 30,
  },
  cards: [{ type: Schema.Types.ObjectId, ref: "categoryCard" }],
});

module.exports = mongoose.model("category", categorySchema);

// Схема карты категории

const mongoose = require("mongoose");
const Schema = mongoose.Schema;

const categoryCardSchema = new Schema({
  category: {
    type: String,
    trim: true,
  },
  name: {
    type: String,
    trim: true,
  },
  post: {
    type: String,
    required: true,
    trim: true,
  },
});

module.exports = mongoose.model("categoryCard", categoryCardSchema);

// Ниже приведен файл маршрутизатора express. Я хочу, чтобы пользователи могли создавать карточки для разных категорий после того, как категория уже создана. Он работал в почтальоне, но по какой-то причине он не работает на переднем конце.


router.route("/createCard").post((req, res) => {

    const { title, name, post } = req.body;

    newCard = new categoryCard({
      category: title,
      name,
      post,
    });

    newCard.save();

    category.findOne({ title }).exec((err, item) => {
      if (!err) {
        item.cards.push(newCard._id);
        item.save();
        res.send(item);
      } else {
        res.send(err);
      }
    });
});


1 Ответ

0 голосов
/ 21 апреля 2020

Вы можете следовать этому коду ...

let categorys= await category.findOne({ title }).populate("cards")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...