Я спроектировал мою схему 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.