Как создать вложенную схему mongoDb в mongoose? - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь разработать мангуста-шму для пользователей, чище и клиентов, у них есть некоторые общие поля, например имя, но также есть дополнительные (разные поля) клиента (рейтинг) и номер клиента. Я не уверен, что мой дизайн хорош.

Я создал отдельную пользовательскую схему для клиента и уборщика и создал отдельную схему адресов.

// 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
 }

});

Моя схема не работает. Не могли бы вы привести пример лучшей практики для моей схемы?

1 Ответ

0 голосов
/ 15 мая 2019

Так я бы определил ваши схемы 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
  }
});
...