Как запросить последние документы из схем mon goose и - PullRequest
1 голос
/ 30 апреля 2020

Я спроектировал мою схему goose как

Схемы

Схема пользователя

{
  first_name: {type: String, required: true},
  last_name: {type: String},
  email: {type: String, required: true, unique: true},
  password: {type: String, required: true},
  isVerified: {type: Boolean, required: false},
  dob: {type: Date},
  from: {
    city: {type: String},
    state: {type: String}
  },
  gender: {type: String},
  phone_no: {type: Number},
  cover_pic: {type: String},
  profile_pic: {type: String},
  about:{type: String},
  social:{
    instagram:{type: String},
    facebook:{type: String},
    youtube:{type: String},
    twitter:{type: String}
  }
},{
  timestamps: true
}

Схема расположения

Location:{
name : { type: String, required: true },
  address : {
    street: { type: String, required: true },
    area: { type: String, required: true },
    city: { type: String, required: true },
    zip_code: { type: Number, required: true },
    state: { type: String, required: true }
  },
  description : { type: String, required: true },
  lat : { type: Number, required: true },
  long : { type: Number, required: true },
  phone_number : { type: Number, required: true },
  facilities : [{type: String}],
  location_type : { type: String, required: true },
  location_website : { type: String, required: true },
  //Reviews//
  reviews : [{
    rating: { type: Number, required: true },
    review : { type: String, required: true },
    reviewed_by: { type: mongoose.Schema.Types.ObjectId, ref: 'User' ,required: true, }
  }],
  //Post//
  post: [{
    title: { type: String, required: true },
    description: { type: String, required: true },
    location: { type: String, required: true },
    imagesPaths: [String],
    videosPaths: [String],
    creatorId: { type: mongoose.Schema.Types.ObjectId, ref: 'User' ,required: true, }
  }]
}

Вы можете видеть Я включил документы публикации и проверки в документ местоположения.

Требование

A User Можно добавить один Review и несколько Post для указания c Location, таким образом, будет много мест.


Вопрос

Я хочу запросить Запросы 1. Последние Reviews, а также Последние Post из всех Locations 2. Отзывы и сообщения пользователя Specifi c

Это правильный подход к созданию схемы в соответствии к моему требованию. Или я должен использовать ссылку для отношений, а также рассказать, как мне выполнить эти два запроса, используя mon goose.

...