заполнение мангуста возвращает ноль при добавлении трех полей - PullRequest
0 голосов
/ 26 января 2019

Итак, это моя вторая попытка опубликовать этот вопрос относительно заполнить в мангуст, который в результате он возвращает ноль, когда Я добавил три объекта к нему. У меня есть три объекта для заполнения 1. oem, 2. категория, (возвращает ноль) 3. подкатегория (возвращает ноль) Позвольте мне показать вам коды относительно этого. Объект oem показывает свои данные после заполнения, но категория и подкатегория отображаются пустыми. Так что я должен добавить inorder, чтобы данные этих двух объектов также отображались в результате. Ценю, если кто-нибудь может помочь.

// Продукты маршрута.

const express = require("express");
const router = express.Router();

const Product = require("../../../models/Master/Products");

const validateProductInput = require("../../../validation/master/products");

router.get("/", (req, res) => {
  Product.find()
    .populate("oem")
    .populate("category")
    .populate("subcategory")
    .then(product => res.json(product));
});

router.get("/:id", (req, res) => {
  const id = req.params.id;
  Product.findById(id)
    .populate("oem")
    .populate("category")
    .populate("subcategory")
    .then(product => res.status(200).json(product))
    .catch(err => res.status(500).json(err));
});


module.exports = router;

// Модель продукта

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

const ProductSchema = new Schema({
  oem: {
    type: mongoose.Schema.Types.ObjectId,
    ref: "company",
    required: true
  },
  category: {
    type: mongoose.Schema.Types.ObjectId,
    ref: "productcategory",
    required: true
  },
  subcategory: {
    type:mongoose.Schema.Types.ObjectId,
    ref: "productsubcategory",
    required: true
  },
  modelno: {
    type: String,
    required: true
  },
  productdescription: {
    type: String,
    required: true
  },
  productspecification: {
    type: String,
    required: true
  },
  entrydate: {
    type: Date,
    default: Date.now
  }
});
module.exports = Product = mongoose.model("product", ProductSchema);

// Модель компании (для oem)

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

const CompanySchema = new Schema({
  companyname: {
    type: String,
    required: true
  },
  contactperson: {
    type: String,
    required: true
  },
  contactno: {
    type: Number,
    required: true
  },
  alternatecontactno: {
    type: Number
  },
  email: {
    type: String,
    required: true
  },
  fax: {
    type: Number,
    required: true
  },
  address: {
    type: String,
    required: true
  },
  date: {
    type: Date,
    default: Date.now
  }
});
module.exports = Company = mongoose.model("company", CompanySchema);

// Модель товарной категории (для товарной категории)

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

const ProductCategorySchema = new Schema({
  category: {
    type: String,
    required: true
  },
  description: {
    type: String,
    required: true
  }
});
module.exports = ProductCategory = mongoose.model(
  "productcategory",
  ProductCategorySchema
);

// Модель подкатегории продукта (для подкатегории)

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

const ProductSubCategorySchema = new Schema({
  subcategory: {
    type: String,
    required: true
  },
  parentcategory: {
    type: mongoose.Schema.Types.ObjectId,
    ref: "productcategory",
    required: true
  },
  description: {
    type: String,
    required: true
  }
});
module.exports = ProductSubCategory = mongoose.model(
  "productsubcategory",
  ProductSubCategorySchema
);

И результат такой

[
    {
        "entrydate": "2019-01-26T14:03:35.792Z",
        "_id": "5c4c68b7e1bb692ecc525735",
        "oem": {
            "date": "2019-01-21T10:49:16.679Z",
            "_id": "5c45a3ac6a3ebd2bd0b5ed48",
            "companyname": "Microsoft",
            "contactperson": "Bill Gates",
            "contactno": 8730960219,
            "alternatecontactno": 8837099070,
            "email": "microsoft@hotmail.com",
            "fax": 368965217,
            "address": "California, USA",
            "__v": 0
        },
        "category": null,
        "subcategory": null,
        "modelno": "KLJ123456",
        "productdescription": "DNSJANDSJAKLNDSJLANDSLANDASJNDSANDSA DNSAKLDNKSLANDMSKALNDMKSALNDKLASNDKALS DNASJLDNSKJALDNKJSALNDSKALNDSKA",
        "productspecification": "BDHSJDBSJAKDASKJBDNASKJBDNASKJBDNASKJBD DNSKALNDKJASLNDJKASLDNSAKLNDJSALKNDAS DNAKSLNDASKLDNSAKLNDASKJNDSKA",
        "__v": 0
    }
]
...