【问题标题】:EnsureIndex for likes in MongoDBMongoDB中喜欢的EnsureIndex
【发布时间】:2014-02-09 00:04:13
【问题描述】:

嗯,我正在创建一个允许用户创建帖子并喜欢它们的网络。

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

包含每个帖子的文档的集合。 一个集合,其中包含每个like 的文档,在每个文档中都有一个引用,post 被引用。

当我想获得关于某个帖子的所有点赞时,我可以查询点赞集合以查找对该帖子的引用。

直到这里我还好。但是假设我将在类似的集合中拥有数百万个文档,我想知道如何在不太长的时间内查询和搜索它们。

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

但是我什么时候必须创建这个索引?创建一次就足够了(例如,当我设置我的数据库时)并且它将在 mongodb 中作为默认设置,还是我必须在应用程序生命周期中执行它?谢谢你

【问题讨论】:

    标签: javascript php node.js mongodb database


    【解决方案1】:

    但假设我将在类似的集合中拥有数百万个文档,我想知道如何在不太长的时间内查询和搜索它们。

    我假设您很可能希望以点赞数为例?

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

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

    同样适用于 MongoDB。

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

    如果您需要实际查询喜欢以显示一些喜欢它的人,那么您可以限制这些喜欢。 Google+ 和其他网络倾向于将他们显示的点赞数量限制在 1,000 左右。

    我被告知了 ensureIndex,

    向数据库添加索引确实有助于实际搜索文档。

    但是我什么时候必须创建这个索引?一次就够了

    是的,MongoDB 将自行管理索引。您只需确保一次。

    【讨论】:

      猜你喜欢
      • 2014-02-08
      • 2013-04-15
      • 1970-01-01
      • 1970-01-01
      • 2022-08-03
      • 2017-02-08
      • 1970-01-01
      • 2011-11-16
      • 1970-01-01
      相关资源
      最近更新 更多