Как добавить ссылку на модель? - PullRequest
1 голос
/ 28 марта 2019

Я новичок в узле JS, и я делаю проект. Я хочу иметь ссылку на модель в другой модели. это модели

let mongoose = require('mongoose');

const bloodStockSchema = mongoose.Schema({
    bloodType: { type: String, required: true },
    bloodAvailable: { type: String, required: true },
    bloodUsed: { type: String, required: true },
    branchId: { type: mongoose.Schema.Types.ObjectId, ref: "Branch", required: true }}
});

module.exports = mongoose.model("BloodStock", bloodStockSchema);

а это другая модель

const mongoose = require("mongoose");

const branchSchema = mongoose.Schema({
    branchName: { type: String, required: true },
    officeTelephone: { type: String, required: true },
    email: { type: String, required: true },
    city: { type: String, required: true },
    subCity: { type: String, required: true },
    zone: { type: String, required: true },
    wereda: { type: String, required: true },
    kebele: { type: String, required: true }
});

module.exports = mongoose.model("Branch", branchSchema);

то, что я хотел получить, это branchId. Вот как я пытался его получить:

let Branch = mongoose.model('Branch');
let branchId = Branch._id;

и еще одна попытка:

let branchId = req.body.branchId;

а также другие вещи ... Так вы можете показать мне, как я это понимаю? Я новичок, и я не могу понять это.

Ответы [ 2 ]

1 голос
/ 29 марта 2019

Вы можете сделать это

let mongoose = require('mongoose');
let BloodStock = mongoose.model('BloodStock');
let BranchModel = mongoose.model('Branch');
let Branch = new BranchModel();

и

let bloodType = "some value";
let bloodAvailable = "some value";
let bloodUsed = "some value";
let branchId = mongoose.Types.ObjectId(Branch._id);

, затем вы можете вызвать create() метод, чтобы сохранить его.

BloodStock.create({
            bloodType: bloodType,
            bloodAvailable: bloodAvailable,
            bloodUsed: bloodUsed,
            branchId: branchId
        })...
0 голосов
/ 28 марта 2019

попробуйте сделать это так:

async function(req, res){
    let newbranch = new Branch({
        branchName: "some value",
        officeTelephone: "some value",
        email: "some value",
        city: "some value",
        subCity: "some value",
        zone: "some value",
        wereda: "some value",
        kebele: "some value"
    });
    let branch = await newbranch.save();
    let branchId = branch._id;

    let newBloodStock = new BloodStock({
        bloodType: "some value",
        bloodAvailable: "some value",
        bloodUsed: "some value",
        branchId: branchId
    });
    let bloodStock = await newBloodStock.save();
    let findBloodStockData = await BloodStock.find({}).populate('branchId').exec()

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