我是节点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;
还有另一件事......所以你能告诉我我是如何得到的吗?我是初学者,我无法弄明白。
你可以这样做
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
})...
尝试这样做:
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()
}