我想生成新创建的对象的id作为字符串而不是BSON :: ObjectId(' 59afe79b92caf8948b000005')。
我正在使用mongoid版本的mongoid(4.0.2)。
是否有类似此页面{id {3}}的idGeneration。
我想创建id作为随机字符串(SWpabpucouNBRJZoh),以便它可以与我们的meteor应用程序一起使用。
任何建议对我都有帮助。
谢谢,
答案 0 :(得分:0)
如果您在最后生成并在插入查询中指定了_id
字段,则mongo将接受您的_id
。但是如果你没有用名称_id
指定任何字段,那么mongoDB会非常智能地创建一个_id
字段,该字段是用一些算法生成的,可以在将来用于排序目的。
这里是mongoDB如何生成对象ID的信息。 Click Here
你可以自己生成一个大约17个字符的_id(取决于你需要多长时间)。但在插入之前确保它不存在。 MongoDB索引由字段_id
标识的密钥。您可以click here了解更多如何生成所需密钥的方法。获取提示并开发自己的代码。
答案 1 :(得分:0)
正如Ankur Soni指出的那样,在没有_id
属性的MongoDB中插入项目将导致Mongo创建自己的项目。如果你想创建自己的id,你可以使用类似GUID生成器的东西(如下所示:Create GUID / UUID in JavaScript?)来实现这个诀窍:
function guid() {
return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
s4() + '-' + s4() + s4() + s4();
}
function s4() {
return Math.floor((1 + Math.random()) * 0x10000)
.toString(16)
.substring(1);
}