0

我正在创建一个简单的应用程序,它将跟踪玩家每次杀死另一个玩家时的情况。这意味着当他们杀死一个玩家时,被杀死的玩家将被添加到他们的userarray(包含他们杀死的所有玩家)中,然后可以用于统计等。仅将用户名作为字符串值存储在数组中的问题是它会占用更多空间,而我需要更长的时间来获取其他数据。

我遇到的问题是我不确定如何存储玩家的击杀数。我需要能够抓住userarray钥匙,拿到每个username,然后显示它。

这是否会导致延迟,因为它必须获取该数组中的每个用户?有没有办法可以得到userarray查询已经解析的所有值?

用户集合的结构(以及ip,date等);

在此处输入图像描述

第二个集合的结构;

在此处输入图像描述

在此处输入图像描述

我试图最终得到这样的数据;

在此处输入图像描述

4

1 回答 1

1

虽然这可能可以通过比提供的屏幕截图更多的解释来完成,但您似乎正在为 MongoDB 中架构设计的核心概念而苦苦挣扎,我们可以在答案中解决这个问题。

正如您所指出的,您userarray在文档中有一个包含ObjectId参考列表的字段。大概这些是指位于集合中其他地方或它们自己的另一个集合中的文档。

这样做的最大问题是,“MongoDB 不执行联接”,并且正如您期望从引用的文档中获取“属性”一样,那么这不会发生。当然不是以任何简单的方式。

因此,您可能想要的是嵌入式文档,您想要引用的所有数据实际上都包含您正在检索的父文档中。但是,根据您的使用需求,您可能还需要其他东西。为此,建议您花一些时间阅读 MongoDB 文档中的数据建模部分。这讨论了各种方法,并将帮助您获得理解。

如果您真的认为阅读完参考资料确实是您想要的,那么建议您去 google,以便在图书馆中搜索您的语言,这将为您提供一些帮助。

无论如何,一般性的讨论过于宽泛。最好先阅读,尝试一下,然后就您遇到的具体问题提出问题。

于 2014-02-19T07:15:54.230 回答