![]() |
1
0
MongoDB不像*SQL数据库那样是关系数据库(因此MongoDB被称为NoSQL),所以在Mongo中使用关系表效率很低。如果您不想重复数据,那么在文件室集合中保存一个用户id数组是最理想的选择。 Here are some more indepth answers on many-to-many in MongoDB. |
![]() |
2
0
用户如何可以在多个房间中?这不只是用户的一个属性吗?如果你把它编入索引,为什么还要把它存储在房间里呢?
没有一种正确的方法,这实际上取决于您拥有的每个对象的数量,如果对象的数量很小(正如房间和用户所暗示的那样),您可以使用更简单、更可靠(不能存储不可能的值)的方法,例如在用户上拥有单个属性
在MongoDB中,可以对数据进行非规范化,并在每个对象上存储一个数组,该对象包含其他对象的一部分或全部,但如果需要,也可以创建一个有效的联接集合。 例如,您可以拥有一个集合{UserId,RoomId,DateTimeEntered,DateTimeLeft},该集合具有适当的索引,允许您在给定的时间快速查找给定房间中的所有用户。一旦你有了一组ID,如果你需要它们来显示,你可以去加载它们,或者你可以把你需要显示的字段添加到这个表{UserId,UserName,…}但是,如果数据发生变化,您就有维护数据的问题,如果您需要知道,当他们进入房间时,您就有保存数据的问题。 关于StackOverflow,还有很多其他问题与您应该如何存储相关数据有关,我建议您也去阅读这些问题。 |
![]() |
Hayato · 如何检查我是如何安装MongoDB的 2 年前 |
![]() |
Valeri · 如何仅获取布尔值数组中没有“false”的文档? 2 年前 |
![]() |
Agrim Singh · 用户数据。名称未显示用户名 2 年前 |
![]() |
danilonet · MongoDb。NET-ObjectId序列化 2 年前 |
![]() |
Windy · MongoDB-查询计算和分组多个项目 2 年前 |
![]() |
Mike Kharkov · 无法从数据库中检索多个值 2 年前 |