如何添加对模型的引用?

问题描述 投票:1回答:2

我是节点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;

还有另一件事......所以你能告诉我我是如何得到的吗?我是初学者,我无法弄明白。

node.js express mongoose
2个回答
1
投票

你可以这样做

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
投票

尝试这样做:

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()

}
© www.soinside.com 2019 - 2024. All rights reserved.