2

我正在为社交游戏开发原型,我使用 mongodb 作为存储引擎。我想知道在 mongo 集合中存储带有关联图块(状态/类型等)的地图图块是否是一种好方法。

地图:{0:{类型:草,状态:收获,last_action_date:2012-01-12}1:{...} ....44:{...}}

也许平面文件应该更好?我不知道将瓦片地图存储在像 mongo 这样的数据库中的最佳做法。

这样我就可以通过一个请求获取所有地图图块以及与图块关联的所有状态......(每个图块都用一个数字索引,允许确定图块的 X/Y 坐标)

有人在mongodb中使用这种系统吗?

谢谢!

4

1 回答 1

3

Mongo 中的数据结构应由您需要如何写入、访问和/或修改该数据来确定。也许将整个地图作为子文档的双数组放在单个文档中是有意义的(仅适用于小地图)。也许将地图的每个图块存储为单个文档更有意义(这似乎更有可能)。

如果您将图块存储为单独的文档,则为它们提供一个通用键,例如“map:'map1'”,以便您可以一次提取整个地图。同时,将图块存储为单独的文档的强大之处在于您无需一次加载整个地图。而是给每个图块一个公共键,例如“map1”(这样您就可以在同一个集合中存储多个地图),包括一个 x 和 y 坐标(假设 2d 空间),并在这三个字段上创建一个唯一索引。有了这个,您可以快速有效地只提取您随时需要使用的图块,并从内存中删除当前计算或演示不需要的图块。

于 2012-07-24T17:57:59.417 回答