【发布时间】:2016-03-16 21:30:10
【问题描述】:
问题:我目前有一个包含 100,000 个文档的 mongo 集合。每个文档有 3 个字段(_id、姓名、年龄)。我想向每个名为 hashValue 的文档添加第 4 个字段,该字段存储每个文档名称字段的 md5 哈希值。
我目前可以通过 mongo shell 或通过 Mongoose ODM 作为 nodeJS 应用程序的一部分与我的集合进行交互。
可能的解决方案:
- 使用 Mongoose/nodeJs:
我意识到这行不通(不要相信您可以以这种方式遍历光标),但希望它显示了我正在尝试做的事情。
var crypto = require('crypto');
MyCollection.find().forEach(function(el){
var hash = crypto.createHash('md5').update(el.name).digest("hex");
el.name = hash;
el.save()
});
使用 mongo Shell - 与上面几乎相同,我意识到类似上述语法的东西可以工作。唯一的问题是我不知道如何在 mongo shell 中创建 md5 哈希。但我能够遍历每个文档并添加一个字段。
(可能的解决方法)- 这样做的目的是能够根据名称值的 md5 散列进行查询。我相信 mongo 允许您创建一个散列索引 (link here)。唯一的问题是我找不到任何人使用它进行查询的示例(似乎仅用于分片),我不确定这是否会在以后起作用。 (示例:我想对我从用户那里收集的名称进行 md5 哈希处理,然后查询我的 mongo 集合以查看是否可以在 hashValue 字段中找到该 md5 哈希)
【问题讨论】:
标签: node.js mongodb hash mongoose md5