繁体   English   中英

如何给我的 ID ZCCADCDEDB567ABAE643E15DCF0974E503Z ObjectID? 整个object?

[英]How can I give my id the Mongoose ObjectID? Of the whole object?

我想从 basicData 中给我的 id 提供我整个公司 object 的 ObjectID。 这怎么可能? 我试过了: _id: { type: mongoose.Types.ObjectId, ref: "Company" }但它不起作用......你有解决方案吗?

我的代码:

import mongoose, { Schema, Document, Collection, mongo } from "mongoose";

const CompanySchema = new Schema(
  {
    basicData: {
      _id: { type: mongoose.Types.ObjectId, auto: true }, // that id I want to give her the complete ObjectID of Company
      tasks: {
        type: [],
        validate: {
          validator: (arr: any) => {
            return arr.length > 0;
          },
          message: "You must provide more than 0 tasks.",
        },
        title: { type: String, required: [true, "title is required"] },
      },
      partner: {
        type: Number,
        required: [true, "partner is required"],
        min: 0,
        max: 10,
      },
      riskFactor: {
        type: Number,
        required: [true, "riskFactor is required"],
        min: 0,
        max: 10,
      },
      name: { type: String, required: [true, "name is required"] },
    },
  },
  {
    versionKey: false,
    typePojoToMixed: false,
  }
);
const Company = mongoose.model("Company", CompanySchema);
export default Company;


您可以在 companySchema 文件中创建一个 basicSchema,插入时会自动获取一个_id

// Company.js

const BasicDataSchema = new Schema({
      tasks: {
        type: [],
        validate: {
          validator: (arr: any) => {
            return arr.length > 0;
          },
          message: "You must provide more than 0 tasks.",
        },
        title: { type: String, required: [true, "title is required"] },
      },
      partner: {
        type: Number,
        required: [true, "partner is required"],
        min: 0,
        max: 10,
      },
      riskFactor: {
        type: Number,
        required: [true, "riskFactor is required"],
        min: 0,
        max: 10,
      },
      name: { type: String, required: [true, "name is required"] }
});

const CompanySchema = new Schema({
 basicData: BasicDataSchema,
 ...
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM