MongoDB中喜欢的EnsureIndex
Posted
技术标签:
【中文标题】MongoDB中喜欢的EnsureIndex【英文标题】:EnsureIndex for likes in MongoDB 【发布时间】:2014-02-09 00:04:13 【问题描述】:嗯,我正在创建一个允许用户创建帖子并喜欢它们的网络。
在***上询问我已经了解如何构建我的数据库:
包含每个帖子的文档的集合。 一个集合,其中包含每个like 的文档,在每个文档中都有一个引用,post 被引用。
当我想获得关于某个帖子的所有点赞时,我可以查询点赞集合以查找对该帖子的引用。
直到这里我还好。但是假设我将在类似的集合中拥有数百万个文档,我想知道如何在不太长的时间内查询和搜索它们。
我被告知了 ensureIndex,在这种情况下,我必须确保包含对帖子的引用的字段的索引。
但是我什么时候必须创建这个索引?创建一次就足够了(例如,当我设置我的数据库时)并且它将在 mongodb 中作为默认设置,还是我必须在应用程序生命周期中执行它?谢谢你
【问题讨论】:
【参考方案1】:但假设我将在类似的集合中拥有数百万个文档,我想知道如何在不太长的时间内查询和搜索它们。
我假设您很可能希望以点赞数为例?
您不能,而是使用优化来解决这个问题。数百万行的计数可能会有点慢。
一个典型的场景是 SQL 技术中的计数器,您可以使用它来修改父行及其子行的总和。
同样适用于 MongoDB。
您会将重要数据汇总到顶部。
如果您需要实际查询喜欢以显示一些喜欢它的人,那么您可以限制这些喜欢。 Google+ 和其他网络倾向于将他们显示的点赞数量限制在 1,000 左右。
我被告知了 ensureIndex,
向数据库添加索引确实有助于实际搜索文档。
但是我什么时候必须创建这个索引?一次就够了
是的,MongoDB 将自行管理索引。您只需确保一次。
【讨论】:
以上是关于MongoDB中喜欢的EnsureIndex的主要内容,如果未能解决你的问题,请参考以下文章
喜欢按钮,在数据库上加减。 nodejs, mongodb, 猫鼬, jquery
自从学习了MongoDB高可用,慢慢的喜欢上了它,之前确实冷落了