哈希索引 - 搜索大值的任何解决方法

时间:2015-02-19 19:43:23

标签: mongodb

我是mongo的新手,我有一个独特的场景。

让我们说我们收集的文件类似于:

{date: ISODate(), text: "this is a large character field with over 1024 bytes"}

让我们想象一下,我们有10亿个文档,其中包含100,000个唯一文本值。将这些数据标准化会很好,但由于mongo不是关系数据,我们不这样做。

除了需要占用更多磁盘空间的事实之外,它并没有真正造成任何大问题。我们在文本上有一个哈希索引,只要我们知道特定的文本值,我们就可以根据它来提取记录。

但是,如果我们不知道价值呢?我们怎么能找到它?我很好奇是否有任何解决办法允许这样做。

例如,如果我们可以做这样的事情,那将是有用的。这可能吗?

var cursor = collection.myindex.find();

while(cursor.hasNext()) {
    var hash = cursor.next().numberLong;
    var doc = db.collection.findOne({text: {$hash: hash}});
    print(doc.text);
}

0 个答案:

没有答案