在meteor中,当我在一个集合中创建一个项目时,该项目的生成ID通常如下所示:
"_id" : "vxqbpic8yLdc6Ehor"
但是,当我直接在Mongo中插入一行时,它生成的id看起来像:
"_id" : ObjectId("549af35926cee46520611838")
我有没有办法直接将数据插入到mongo中,生成类似于流星的方式的id,或者是meteor特有的东西?如果可能的话,我会很乐意放弃“ObjectId()”包围值。
答案 0 :(得分:3)
meteor实际上做的是创建一个随机的17个字符的字符串,其中包含来自23456789ABCDEFGHJKLMNPQRSTWXYZabcdefghijkmnopqrstuvwxyz
https://github.com/meteor/meteor/blob/devel/packages/random/random.js就是那样做的。即RandomGenerator.prototype.id(17)函数。
因此,您可以将其包含在自定义代码或任何其他代码中,这些代码会从我上面给出的字符中生成17个字符的随机字符串,并将其结果用作您的ID。
事实上,任何其他随机字符串就足够了,只要它是普遍随机的,Meteor的实现试图达到。