如何索引Mongodb集合

时间:2015-09-09 20:00:56

标签: mongodb performance indexing database

我确信这是一个教科书问题,但我无法做到这一点。考虑拥有这样的10M Mongodb文档的集合:

{
    prop1 : "a selective string property",
    prop2 : "another selective string property",
    attribs : [
        {
            k : 'attribute name',
            v : 'short string value'
        },

        {
            k : 'another attribute name',
            v : 'short string value'
        }
   ],
   sortKey1 : "a short string being sorted on",
   sortKey2 : "another short string being sorted on"
}
  • attribs数组包含任意但少量的属性,比如少于20个。
  • attribs.k是属性的名称。有一个未知但仍然很少的这样的名字说少于200。
  • attribs.v是名为attribs.k
  • 的属性的值
  • 很难判断attribs.kattribs.v
  • 的选择性

针对此集合的典型查询是范围($in$lt等)的组合,或prop1prop2attribs上的相等。查询中的$and字段可能有多个attribs条件。结果按sortKey1sortKey2排序。

最重要的问题当然是如何创建索引,以便索引能够正确支持上述任何查询。

真实世界的例子 - 一个商店:查找位于城市X,Y,Z的所有汽车,由K,L或M制造,行驶里程在50k到150k之间,带巡航控制,氙气灯,自动变速器,本身为红绿色或蓝色。

欢迎使用其他NoSQL dbs的解决方案,但首选Mongodb答案。更改架构的建议也没问题。

0 个答案:

没有答案