Javascript 使用Node.js检查所有权数据的状态
我想征求意见。 因此,我正在为公寓所有权构建Node.js和MongoDB应用程序。在应用程序中,有两个数据:所有权和租户。 例如,A先生有第10单元和第11单元。然后是C先生租用A先生拥有的11号单元。您如何显示属于A先生的10号单元的状态以及租给C先生的11号单元的状态 以下是我的controller.js代码:Javascript 使用Node.js检查所有权数据的状态,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,我想征求意见。 因此,我正在为公寓所有权构建Node.js和MongoDB应用程序。在应用程序中,有两个数据:所有权和租户。 例如,A先生有第10单元和第11单元。然后是C先生租用A先生拥有的11号单元。您如何显示属于A先生的10号单元的状态以及租给C先生的11号单元的状态 以下是我的controller.js代码: const Ownership = require("./owner/model").Ownership; const Lease = require(&quo
const Ownership = require("./owner/model").Ownership;
const Lease = require("./tenant/model").Tenant;
const Tenant = require("../customer/model").Customer;
const errorHandler = require("../controllers/errorController");
exports.listContract = async (req, res, next) => {
try {
// let data = [];
const dataOwnership = await Ownership.find().populate("unit", "-__v");
let dataLease = await Lease.find().populate("unit", "-__v");
dataOwnership.forEach((el, index) => {
if (el.unit.cdunt !== dataLease[index].unit.cdunt) {
dataLease.push(el);
}
});
res.status(200).json({
status: "success",
data: dataLease,
});
} catch (err) {
console.error(err);
return errorHandler(err);
}
};
exports.listUnitByTenant = async (req, res, next) => {
try {
const dataUser = await User.findById(req.params.id);
const dataTenant = await Tenant.findOne({ _id: dataUser.tenant });
let dataUnit = await Ownership.find({ cstmr: dataTenant._id })
.populate("cstmr", "-__v")
.populate({
path: "unit",
model: "Unit",
select: "-__v",
populate: [
{
path: "flr",
model: "Floor",
select: "-__v",
populate: {
path: "blk",
model: "Block",
select: "-__v",
populate: {
path: "grpid",
model: "BlockGroup",
select: "-__v",
},
},
},
{
path: "unttp",
model: "UnitType",
select: "-__v",
},
{
path: "untrt",
model: "UnitRate",
select: "-__v",
},
],
});
if (dataUnit.length === 0) {
dataUnit = await Lease.find({ cstmr: dataTenant._id })
.populate("cstmr", "-__v")
.populate({
path: "unit",
model: "Unit",
select: "-__v",
populate: [
{
path: "flr",
model: "Floor",
select: "-__v",
populate: {
path: "blk",
model: "Block",
select: "-__v",
populate: {
path: "grpid",
model: "BlockGroup",
select: "-__v",
},
},
},
{
path: "unttp",
model: "UnitType",
select: "-__v",
},
{
path: "untrt",
model: "UnitRate",
select: "-__v",
},
],
});
}
res.status(200).json({
status: "success",
data: dataUnit,
});
} catch (err) {
console.error(err);
res.status(500).json({
status: "error",
message: "Something Went Wrong",
});
}
};
提前谢谢。为此,我可能会制作一个单元模型,其中包含属性所有者和租户,这两个都是类型用户的引用数组,并且在所有权控制器中,我将首先检查租户,如果数据存在,则将其作为当前所有者返回,如果不存在,则将原始所有者作为当前所有者返回,谢谢你的回复。对不起,你能详细说明一下吗?我的意思是关于代码哦,是的,我已经为所有者和承租人制作了模型。这意味着,不再是所有权、承租人和客户,而是删除模型所有权和承租人,并将客户重命名为用户。然后创建一个模型公寓/单元,它有两个属性:所有者和租户。公寓的所有者是用户。公寓.tenant也是一个用户,也许公寓.tenant可以是一个用户数组,以防您可以拆分公寓的租金。hi@slebetman,您的意思是我必须结合所有权模型和租户模型吗?是的。理解sidhant建议的关键在于认识到所有权和承租人不是模型,而是单元的属性。在您的系统中只有两个模型-单位和人员(我称之为用户)。例如:
Mark=newuser()
和Bob=newuser()
。然后公寓=新单元()
。让partment.owner=Mark
和partment.tenant=Bob