gpt4 book ai didi

node.js - 将聊天记录保存在 nosql 数据库中

转载 作者:太空宇宙 更新时间:2023-11-03 23:44:16 25 4
gpt4 key购买 nike

我正在使用 node.js 构建一个聊天服务器应用程序。

我需要将聊天记录保存在数据库中并且想要使用像 mongodb 这样的 nosql 数据库。如果我处于关系数据库世界,我会创建用户、chat_sessions 和 chat_messages 表,对于每条新消息,我都会在 chat_messages 表中追加新记录。

nosql 中最好的方法是什么?

我是否必须创建一个 chat_session 文档,并在其中创建为每条新消息更新的 chat_messages 结构或对于 nosql/mongodb 有没有更好的方法?

最佳答案

您可以使用类似的方法,将每条新消息作为单独的文档插入到集合中(可能每个房间或 channel 一个)。

MongoDB 中的文档有 16mb 的限制,因此将整个历史记录存储在一个以无限方式增长的文档中将是一个糟糕的选择。

您可以对用户名进行非规范化并将其存储在消息本身中,以避免查询两个表(这可能是关系数据库中的联接)。

将数据拆分为多个数据库而不是集合(每个房间、 channel 等)可​​能更有意义,因为目前 mongodb 具有数据库级别的写锁。这将使您能够使用 mongodb 和 node.js 实现更大的写入并发性。

关于node.js - 将聊天记录保存在 nosql 数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16694233/

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