【问题标题】:How create nested mongoDb schema in mongoose?如何在猫鼬中创建嵌套的 mongoDb 模式?
【发布时间】:2019-10-02 07:31:30
【问题描述】:

我正在尝试为用户清洁工和客户设计 mongoose shema,他们有一些共同的领域,例如名称,但也有额外的(不同的字段)客户(评级)和客户编号。我不确定我的设计好不好。

我为客户和清洁工创建了单独的 userSchema,并创建了单独的地址架构。

// User Schema
const UserSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true
  }
});

 // AddressSchema
 const AddressSchema = new mongoose.Schema({
   city: {
    type: String,
    required: true
   },
  street: {
    type: String,
    required: true
  }
});

// CustomerSchema
 const CustomerSchema= new mongoose.Schema({
  name: UserSchema,
  address: AddressSchema 
 });

// CleanerSchema
const CleanerSchema= new mongoose.Schema({
 name: UserSchema,
 rating: {
  type: Number,
  required: true
 }

});

我的架构不起作用。您能否为我的架构提供最佳实践示例?

【问题讨论】:

    标签: mongodb mongoose mongoose-schema


    【解决方案1】:

    这就是我将如何定义您的 Customer 和 Cleaner 架构。我认为没有必要创建单独的名称和地址架构。

    const CustomerSchema = new mongoose.Schema({
      name: {
        type: String,
        required: true
      },
      address: {
        city: {
          type: String,
          required: true
        },
        street: {
          type: String,
          required: true
        }
      }
    });
    
    const CleanerSchema = new mongoose.Schema({
      name: {
        type: String,
        required: true
      },
      rating: {
        type: Number,
        required: true
      }
    });
    

    【讨论】:

    • 但是还有比较常用的字段(姓名、姓氏、密码、地址等),而且我的目的是学习,如何创建单独的模式,如果可以,请帮助我跨度>
    • 这里的最佳答案stackoverflow.com/questions/8737082/… 提供了一些关于嵌套模式的各种方法以及在哪些情况下这是必要的有用信息。希望能给你一个起点!
    猜你喜欢
    • 1970-01-01
    • 2019-03-22
    • 2015-09-21
    • 2019-07-20
    • 2017-06-12
    • 2015-12-18
    • 2014-06-22
    • 2018-10-30
    • 2019-01-16
    相关资源
    最近更新 更多