Mongodb 创建流星友好id';Mongo有什么?

Mongodb 创建流星友好id';Mongo有什么?,mongodb,meteor,Mongodb,Meteor,在meteor中,当我在集合中创建项目时,为该项目生成的id通常如下所示: "_id" : "vxqbpic8yLdc6Ehor" "_id" : ObjectId("549af35926cee46520611838") 但是,当我直接在Mongo中插入一行时,生成的id如下所示: "_id" : "vxqbpic8yLdc6Ehor" "_id" : ObjectId("549af35926cee46520611838") 有没有一种方法可以让我直接将数据插入mongo,生成一个类似m

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

"_id" : "vxqbpic8yLdc6Ehor"
"_id" : ObjectId("549af35926cee46520611838")
但是,当我直接在Mongo中插入一行时,生成的id如下所示:

"_id" : "vxqbpic8yLdc6Ehor"
"_id" : ObjectId("549af35926cee46520611838")

有没有一种方法可以让我直接将数据插入mongo,生成一个类似meteor的id,或者meteor有什么特别之处?如果可能的话,我很乐意删除值周围的“ObjectId()”。

meteor实际做的是创建一个由
23456789abcdefghjklmnpnpqrstwxyzabcdefghijkmnopqrstuvxyz中的字符组成的随机17个字符字符串

那是什么意思。即RandomGenerator.prototype.id(17)函数

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


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

Meteor实际做的是创建一个17个字符的随机字符串,该字符串由
23456789abcdefghjklmnpqrstwxyzabcdefghjkmnopqrstwxyz

那是什么意思。即RandomGenerator.prototype.id(17)函数

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


事实上,任何其他随机字符串都可以满足要求,只要它是Meteor的实现尝试实现的普遍随机字符串。

我想粘贴到代码中,但它太长,有点难以简化。但是继续,把它作为一个整体,它确实有一些其他的好的和小的UTIL你可以使用。我能够看到它。它回答了我的主要问题:它是通过另一个库生成的,还是有一种方法可以在mongo中指定生成一个id而不使其成为ObjectId(),事实上,是的。可以参考将ObjectId()强制转换为字符串。您可以执行
var\u id=new ObjectId.valueOf()
获取带有
ObjectId(“xxxxxxxxxxxxx”)的id的字符串部分。valueOf()
这些id需要是随机的吗?这背后的原因是什么?猜测一个对象的id是否有安全隐患?还是说ID必须是唯一的?我这样问是因为我正在从以前的系统迁移数据,识别像
post0000000000001
之类的对象会更方便。而不是随机生成它们……它们不需要是随机的,而是唯一的。安全性意味着很容易猜测用于获取/删除记录的id,您可以在实践中对其进行设置,但随机字符串确实很难猜测,因此从理论上讲安全性要好得多。我想粘贴代码,但它太长,有点难以简化。但是继续,把它作为一个整体,它确实有一些其他的好的和小的UTIL你可以使用。我能够看到它。它回答了我的主要问题:它是通过另一个库生成的,还是有一种方法可以在mongo中指定生成一个id而不使其成为ObjectId(),事实上,是的。可以参考将ObjectId()强制转换为字符串。您可以执行
var\u id=new ObjectId.valueOf()
获取带有
ObjectId(“xxxxxxxxxxxxx”)的id的字符串部分。valueOf()
这些id需要是随机的吗?这背后的原因是什么?猜测一个对象的id是否有安全隐患?还是说ID必须是唯一的?我这样问是因为我正在从以前的系统迁移数据,识别像
post0000000000001
之类的对象会更方便。而不是随机生成它们……它们不需要是随机的,而是唯一的。安全性意味着很容易猜测用于获取/删除记录的id,您可以在实践中对其进行设置,但随机字符串确实很难猜测,因此在理论上安全性要高得多。