MongoDB Database Schema
User
UserSchema = new Schema(
{
fullname: {
type: String,
required: true,
trim: true,
},
username: {
type: String,
required: true,
trim: true,
},
email: {
type: String,
required: true,
trim: true,
},
password: {
type: String,
required: true,
trim: true,
},
birth_date: {
type: Date,
required: true,
},
bio: {
type: String,
default: null,
trim: true,
},
location: {
type: String,
default: null,
trim: true,
},
website: {
type: String,
default: null,
trim: true,
},
avatar: {
type: Buffer,
default: null,
},
cover: {
type: Buffer,
default: null,
},
},
{
timestamps: true,
}
);
Tweet
const TweetSchema = new Schema(
{
user: {
type: Schema.Types.ObjectId,
ref: 'User',
},
text: {
type: String,
required: true,
},
tweet: {
type: Schema.Types.ObjectId,
ref: 'Tweet',
default: null,
},
media: {
type: Buffer,
default: null,
},
},
{
timestamps: true,
}
);
Like
const LikeSchema = new Schema(
{
user: {
type: Schema.Types.ObjectId,
ref: 'User',
},
tweet: {
type: Schema.Types.ObjectId,
ref: 'Tweet',
},
},
{
timestamps: true,
}
);
Follow
const FollowSchema = new Schema(
{
follower: {
type: Schema.Types.ObjectId,
ref: 'users',
},
followed: {
type: Schema.Types.ObjectId,
ref: 'users',
},
},
{
timestamps: true,
}
);