Mongo中的规范化/子对象

时间:2014-06-11 20:10:07

标签: mongodb

Mongodb的新手,对如何正确存储数据有疑问。

我正在进行域名搜索/历史记录POC,并且不确定如何存储数据。如果是mySQL我会有以下表格

域 - 域名和当前状态 Domain_Updates - 域的外键,将存储whois信息

{
   domain: 'blah.com',
   status: 'registered',
   updates: [
       {
           owner: 'john smith',
           status: 'expiration',
           date: somedategoeshere
       },
       {
           status: 'available',
           date:'somedategoeshere'
       }
   ]
}

如果每个域有数百个或数千个更新,那么这种格式的MongoDB会持续吗?

1 个答案:

答案 0 :(得分:1)

取决于您是否希望快速搜索更新字段。 。 。你打算索引吗? 如果是,则整个updates []数组最终会出现在索引中。

Multikey Index

MongoDB uses multikey indexes to index the content stored in arrays.
     

如果索引包含数组值的字段MongoDB   为数组的每个元素创建单独的索引条目。这些   多键索引允许查询选择包含数组的文档   通过匹配数组的元素或元素。 MongoDB的   如果是,则自动确定是否创建多键索引   索引字段包含数组值;你不需要明确   指定多键类型

来源:http://docs.mongodb.org/manual/core/indexes-introduction/

如果您对更平坦的索引感兴趣(可能),那么最好将domain_key注入更新文档并将它们存储在单独的集合中。