Javascript 使用Node.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

我想征求意见。 因此,我正在为公寓所有权构建Node.js和MongoDB应用程序。在应用程序中,有两个数据:所有权和租户。 例如,A先生有第10单元和第11单元。然后是C先生租用A先生拥有的11号单元。您如何显示属于A先生的10号单元的状态以及租给C先生的11号单元的状态

以下是我的controller.js代码:

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