我想创建一个聊天应用。 我需要决定我的DB会是什么样子。 我使用mongodb作为DB。
我希望有一个名为"用户"这将包含为我的应用注册的每个用户。
即。
users
- Mike
- David
- Adam
我还希望在我的聊天应用程序中拥有一系列房间。
即
rooms
- Game of thrones
- Class of 94'
- sicence fiction
- pet lovers
我还想要一个有用户的房间集合
即
pet lovers (room name)
- Mike (user1)
- Dave (user2)
.....
我知道如何在mongodb中代表用户和房间。
但任何想法如何代表房间内的用户"采集?看来我需要一个集合中的列表(房间中的用户列表),另外我需要保存房间名称。
我希望从这个集合中提取数据很容易(例如删除或添加用户到房间/找出用户正在聊天的房间......)
另外,如果有人有更好的建议来表示这些数据 - 请随意...
由于
答案 0 :(得分:1)
您可以将包含给定会议室中用户ID的users
数组添加到room
文档中,这样房间集合就会显示如下:
[
{
"_id":"...",
"roomName":"Game of Thrones",
//...
"users":[
"userId1",
"userId2",
//...
"userIdn"
]
}, {
"_id":"...",
"roomName":"the secret zone",
//...
"users":[
"userId2",
//...
]
}
]
然后,当用户加入会议室R
时,您将其ID添加到R.users
数组。并在他离开时将其移除。
顺便说一下,我认为用mongoose定义一些模式模型可能会有所帮助