在Mongo中创建流星友好的id?

时间:2014-12-24 20:09:15

标签: mongodb meteor

在meteor中,当我在一个集合中创建一个项目时,该项目的生成ID通常如下所示:

"_id" : "vxqbpic8yLdc6Ehor"

但是,当我直接在Mongo中插入一行时,它生成的id看起来像:

"_id" : ObjectId("549af35926cee46520611838")

我有没有办法直接将数据插入到mongo中,生成类似于流星的方式的id,或者是meteor特有的东西?如果可能的话,我会很乐意放弃“ObjectId()”包围值。

1 个答案:

答案 0 :(得分:3)

meteor实际上做的是创建一个随机的17个字符的字符串,其中包含来自23456789ABCDEFGHJKLMNPQRSTWXYZabcdefghijkmnopqrstuvwxyz

的字符

https://github.com/meteor/meteor/blob/devel/packages/random/random.js就是那样做的。即RandomGenerator.prototype.id(17)函数。

因此,您可以将其包含在自定义代码或任何其他代码中,这些代码会从我上面给出的字符中生成17个字符的随机字符串,并将其结果用作您的ID。

事实上,任何其他随机字符串就足够了,只要它是普遍随机的,Meteor的实现试图达到。