在表格内创建mongodb列表

时间:2016-12-17 18:49:30

标签: mongodb mongoose database

我想创建一个聊天应用。 我需要决定我的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中代表用户和房间。

但任何想法如何代表房间内的用户"采集?看来我需要一个集合中的列表(房间中的用户列表),另外我需要保存房间名称。

我希望从这个集合中提取数据很容易(例如删除或添加用户到房间/找出用户正在聊天的房间......)

另外,如果有人有更好的建议来表示这些数据 - 请随意...

由于

1 个答案:

答案 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定义一些模式模型可能会有所帮助