Ссылка на один вложенный объект из нескольких объектов в мангусте - PullRequest
0 голосов
/ 01 июня 2019

Это структура моих данных, которые я сохраняю с помощью mongoose, я хочу сохранить только одну информацию.Который находится в поле продуктов.

когда я сохраняю со ссылкой на основной _id, он отображает все продукты, которые являются 2 объектами.

 [
    {
    "_id": "5cf22b99f319fd34dce2fa80",
    "installrefno": "install Ref no 111",
    "installdate": "2019-06-01T00:00:00.000Z",
    "serialno": {
    "_id": "5cf10fcc4cb6352abcfe094a",
    "refno1": "test2",
    "refno2": "testRef2",
    "date": "2019-05-02T00:00:00.000Z",

    "products": [
                {
                  "warrantyfrom": "2019-05-19T00:00:00.000Z",
                  "warrantyto": "2019-05-14T00:00:00.000Z",
                  "oemwarrantyfrom": "2019-05-24T00:00:00.000Z",
                  "oemwarrantyto": "2019-05-25T00:00:00.000Z",
                  "_id": "5cf10fea4cb6352abcfe094b",
                  "oem": "5cb6e026042460131454cf45",
                  "category": "5c960902e5cf3429e06beb6c",
                  "subcategory": "5ca35fbed6e1430df88954a6",
                  "modelno": "A123888",
                  "serialno": "A345"
                  },
                  {
                  "warrantyfrom": "2019-05-19T00:00:00.000Z",
                  "warrantyto": "2019-05-14T00:00:00.000Z",
                  "oemwarrantyfrom": "2019-05-24T00:00:00.000Z",
                  "oemwarrantyto": "2019-05-25T00:00:00.000Z",
                  "_id": "5cf10ffb4cb6352abcfe094c",
                  "oem": "5c986a1e9b6bc614b8a551b9",
                  "category": "5c960902e5cf3429e06beb6c",
                  "subcategory": "5ca35fbed6e1430df88954a6",
                  "modelno": "QW123",
                  "serialno": "B345"
                  }
               ],
    "__v": 2
    },
    "contactperson": "raghav",
    "contactno": 345345,
    "address": "sdfasdf",
    "remarks": "adsfasdf",
    "installdoc": "client\\public\\install\\docs\\installdoc- 
     1559374745886.txt",
    "__v": 0
    },
    ]

Это схема, у меня естьссылается на serialno из другого документа, который является proreg

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

const InstallationSchema = new Schema({
  installrefno: { type: String },
  installdate: { type: Date },
  serialno: {
    type: mongoose.Schema.Types.ObjectId, 
    ref: "proreg"
  },
  installedby: {
    type: mongoose.Schema.Types.ObjectId,
    ref: "employees"
  },

  customer: {
    type: mongoose.Schema.Types.ObjectId,
    ref: "customer"
  },
  customertype: {
    type: mongoose.Schema.Types.ObjectId,
    ref: "customertype"
  },
  department: {
    type: mongoose.Schema.Types.ObjectId,
    ref: "customersubdepartment"
  },
  contactperson: { type: String },
  contactno: { type: Number },
  address: { type: String },
  remarks: { type: String },
  filename: {type: String},
  installdoc: { type: String}
});

module.exports = InstallationDetails = mongoose.model(
  "installation",
  InstallationSchema
);

Это мой маршрут добавления, я получаю оба продукта в поле serialno, когда я добавляю данные.

router.post("/add", upload.single("installdoc"), (req, res, next) => {
  console.log(req.file);
  const newInstallationDetails = new InstallationDetails({
    installrefno: req.body.installrefno,
    installdate: req.body.installdate,
    serialno: req.body.productregistrationid,
    installedby: req.body.employeesid,
    customer: req.body.customerid,
    customertype: req.body.customertypeid,
    department: req.body.customersubdepartmentid,
    contactperson: req.body.contactperson,
    contactno: req.body.contactno,
    address: req.body.address,
    remarks: req.body.remarks,
    installdoc: req.file.path
  });
  newInstallationDetails.save().then(installation => res.json(installation));
});

Как получить только один товар при сохранении данных.Есть ли способ сохранить два ссылочных идентификатора, которые являются основным ссылочным идентификатором и идентификатором продуктов.где идентификатор продукта является поддокументом серийно, который является ссылкой на proreg.

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