对于MongoDB中的喜欢EnsureIndex

那么,我正在创build一个networking,允许用户创buildpost和喜欢他们。

问在stackoverflow我已经了解如何构build我的数据库:

包含每个post的文档的集合。 一个包含每个文件的集合,在每个文件中都有一个对引用的引用被引用。

当我想获得所有喜欢的职位,我可以查询类似的集合寻找该职位的参考。

直到这里我没事。 但假设我会有数百万像collections文件,我想知道如何查询和search他们中不太长的时间。

我被告知ensureIndex,在这种情况下,我必须确保包含对post的引用的字段的索引。

但是,我什么时候需要创build这个索引? 是足够的一次创build它(例如,当我设置我的数据库),它将作为默认的mongodb或我必须在应用程序的生命期间呢? 谢谢

但假设我会有数百万像collections文件,我想知道如何查询和search他们中不太长的时间。

我想你很可能想要指望喜欢作为例子?

你不能,而是使用优化来解决这个问题。 数百万行计数可能会有点慢。

一个典型的场景是SQL技术中的计数器,您可以使用子数的总和来修改父行。

同样适用于MongoDB。

您会将重要数据汇总到顶端。

如果你需要实际查询喜欢,以显示一些谁喜欢它,那么你限制这些喜欢。 Google+和其他networking往往会将喜欢的数量限制在1,000个左右。

我被告知ensureIndex,

将索引添加到数据库确实有助于实际search文档。

但是,我什么时候需要创build这个索引? 足以创build一次

是的,MongoDB将pipe理索引本身。 你只需要确保一次。