我将猫鼬模式设计为
{
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, }
}]
}
您会看到我在位置文档中嵌入了“发布和审阅”文档。
User
可以通过这种方式为特定的Review
添加单个 Post
和多个 Location
将有很多位置。
我想查询
查询
1.来自所有Reviews
的最新Post
和最新Locations
2.特定用户的评论和帖子
这是根据我的要求创建 schema 的正确方法。还是应该使用引用作为关系,并告诉我如何使用猫鼬执行这两个查询。