mongodb - 像SQL一样查找表格?

时间:2014-02-10 16:43:14

标签: mongodb data-modeling nosql

假设我有一个[String, int]形式的数据结构,我希望能够在O(1)时间内进行查找。在传统的SQL数据库中,我只需创建一个查找表即可。

如何将相同内容翻译为mongodb,以便我可以将String元素用作key,将int用作value

2 个答案:

答案 0 :(得分:2)

MongoDB允许您在集合中的字段上创建索引;但是,这些是B树索引,会导致查找为O(log n)。

如果您需要O(1)查找,那么我建议使用Redis。

答案 1 :(得分:2)

在MongoDB中,您的文档需要按以下方式构建:

{
   key: "the key name"
   value: 100
}

然后,您将创建一个索引:

db.myLookupTable.ensureIndex({key : 1})

它不会是O(1)时间,因为它不是哈希查找。正如here所解释的那样,默认情况下,MongoDB中的索引是基于B树的,因此其他类型的操作是可能的(比如您从基于哈希的索引无法获得的排序)。 B树是最坏的情况O(log n)

您还可以为MongoDB中的索引启用哈希索引:

db.myLookupTable.ensureIndex({key: "hashed" })

这限制了您可以对索引执行的查询类型。例如,范围查询是不可能的。

相关问题