最适合我的MongoDB模式

最适合我的MongoDB模式,mongodb,Mongodb,我目前正在为一个即将到来的项目规划我的MongoDB模式,我现在陷入了困境 在本项目中;玩家有技能、收藏和其他一些需要实时更新的东西。这些需要不断更新,例如,当玩家在战斗中赢得一场战斗时;他们的战斗技能提高了。当他们找到某个项目时,一个集合就开始计数 我的问题是,这方面的最佳做法是什么?嵌套文档还是引用单独的文档 任何关于我当前模式的反馈都将不胜感激 { “uuid”:“f6ef95fa-913b-400b-bb76-71aba0fd1aed”, “playerName”:“SomeRandom

我目前正在为一个即将到来的项目规划我的MongoDB模式,我现在陷入了困境

在本项目中;玩家有技能、收藏和其他一些需要实时更新的东西。这些需要不断更新,例如,当玩家在战斗中赢得一场战斗时;他们的战斗技能提高了。当他们找到某个项目时,一个集合就开始计数

我的问题是,这方面的最佳做法是什么?嵌套文档还是引用单独的文档

任何关于我当前模式的反馈都将不胜感激

{
“uuid”:“f6ef95fa-913b-400b-bb76-71aba0fd1aed”,
“playerName”:“SomeRandomName”,
“硬币”:258725.00,
“exp”:,
“装备宠物”:“,
“基本健康”:100,
“基本防御”:0,
“基本强度”:0,
“基本速度”:100,
“baseCritChance”:0,
“基本伤害”:0,
“基本智能”:0,
“baseSeaCreatureChance”:0,
“basemagicFind”:0,
“basePetLuck”:0,
“有效生命”:100,
“迷你解锁”:0,
“迷你地块”:5,
}

如果您能在这件事上提供任何帮助,我们将不胜感激

有多少玩家?有多少服务器访问此数据库?如果您需要使用每个玩家的最新数据实时更新多个服务器,MongoDB可能不是您的最佳选择。否则,如果问题是“嵌套文档还是“已加入”集合”,您将在这里找到许多答案,因此请对此进行讨论。有时你想嵌套它,有时你会将它分离,最好将你的软件设计成灵活的,这样你就可以在需求改变时进行调整。e、 g.你以后需要“原子化”地将武器从一个玩家转移到另一个玩家-如果它们在单独的集合中,可能会更容易。首先,感谢你的回复。玩家们,我们预计在1000-10000之间。可能在上面,可能在下面。但这就是我们的计划。至于多台服务器,技术上是的。你对另一个数据库有什么建议?提示:当有人要求澄清时:更新你的问题,让其他人看到你的回答。有关所有服务器之间的实时缓存数据,请查看REDIS。使用MongoDB进行长期持久化(保存/加载),但使用redis进行实时更新。有多少玩家?有多少服务器访问此数据库?如果您需要使用每个玩家的最新数据实时更新多个服务器,MongoDB可能不是您的最佳选择。否则,如果问题是“嵌套文档还是“已加入”集合”,您将在这里找到许多答案,因此请对此进行讨论。有时你想嵌套它,有时你会将它分离,最好将你的软件设计成灵活的,这样你就可以在需求改变时进行调整。e、 g.你以后需要“原子化”地将武器从一个玩家转移到另一个玩家-如果它们在单独的集合中,可能会更容易。首先,感谢你的回复。玩家们,我们预计在1000-10000之间。可能在上面,可能在下面。但这就是我们的计划。至于多台服务器,技术上是的。你对另一个数据库有什么建议?提示:当有人要求澄清时:更新你的问题,让其他人看到你的回答。有关所有服务器之间的实时缓存数据,请查看REDIS。使用MongoDB进行长期持久化(保存/加载),但使用redis进行实时更新。