gpt4 book ai didi

javascript - MongoDB 聊天架构

转载 作者:行者123 更新时间:2023-12-02 07:38:02 25 4
gpt4 key购买 nike

我正在尝试 MongoDB,作为起点,我为聊天应用程序创建一个架构,将来可能很容易扩展,所以我想知道从我在文档中看到的内容来看这是否正确。到目前为止,我有 3 个集合:用户、房间、消息。另外,我需要执行一些查询,例如从特定房间获取所有消息,从特定用户获取所有消息等

用 Mongoose 设计:

var user = new mongoose.Schema({
username: { type: String, lowercase: true, unique: true },
email: { type: String, lowercase: true, unique: true },
password: String,
is_active: { type: Boolean, default: false },
});

var room = new mongoose.Schema({
name: { type: String, lowercase: true, unique: true },
topic: String,
users: [user],
messages: [message],
created_at: Date,
updated_at: { type: Date, default: Date.now },
});

var message = new mongoose.Schema({
room: room,
user: user,
message_line: String,
created_at: { type: Date, default: Date.now },
});

var User = mongoose.model('User', user);
var Room = mongoose.model('Room', room);
var Message = mongoose.model('Message', message);

最佳答案

//message model
'use strict';

import mongoose from 'mongoose';
var Schema = mongoose.Schema;
var ObjectId = Schema.Types.ObjectId;

var MessageSchema = new Schema({
send: {
type: ObjectId,
ref: 'User',
required: true
},

message: {
type: String,
required: true
},
date: {
type: Date
},
created_by: {
type: ObjectId,
ref: 'User',
required: true
},
thread: {
type: ObjectId,
ref: 'MsgThread',
required: true
},
is_deleted: [{
type: ObjectId,
ref: 'User'
}]
}, {
timestamps: {
createdAt: 'created_at',
updatedAt: 'last_updated_at'
}
});

export default mongoose.model('Message', MessageSchema);

//dont use rooms,,use thread like groupchat or personalChat

import mongoose from 'mongoose';
var Schema = mongoose.Schema;
var ObjectId = Schema.Types.ObjectId;
const s3 = require("../../utils/s3");

var MsgThreadSchema = new Schema({
users: [{
type: ObjectId,
ref: 'User'
}],
group_name: {
type: String
},
created_by: {
type: ObjectId,
ref: 'User'
},
community: {
type: ObjectId,
ref: 'Community'
},
image_url: {
type: String
}
}, {
timestamps: {
createdAt: 'created_at',
updatedAt: 'last_updated_at'
}
});




export default mongoose.model('MsgThread', MsgThreadSchema);

关于javascript - MongoDB 聊天架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28483358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com