流星插入创建一个奇怪的_id值

时间:2015-10-23 14:50:14

标签: mongodb meteor

所以,我创建了一个简单的应用程序来玩Meteor以便学习它,几周前一切都运行得很好。但是,从我的假期回来后,我将meteor更新到了最新版本,现在突然间,insert方法创建了一些奇怪的_id值。

即,我用随机值填充我的数据库,_id值都是正确的24个字符十六进制字符串,如562a3d8de2547280a275088a等等。为此,我使用像这样的mongo插入:

db.simpletable.insert({ name: 'LbDM7kbZf', email: 'E7vfcDZi@yahoo.com', age: 32 });
db.simpletable.insert({ name: 'I6UClhz', email: 'DIZ15@yahoo.com', age: 44 });
db.simpletable.insert({ name: 'XeE3vNz', email: 'X0nUFJUshm@yahoo.com', age: 33 });
...

但是,当我从Meteor调用.insert时,_id值是一个17个字符的字符串,就像这个tJ3PXRmjderbu9oKF一样,在客户端上我得到以下错误:

Uncaught Error: Invalid hexadecimal string for creating an ObjectID

我不知道如何修复此问题,甚至不知道在哪里查看,因为插入操作很简单:

SimpleTable = new Mongo.Collection("simpletable");

SimpleTable.insert({
    name: aObj.name,
    email: aObj.email,
    age: aObj.age
});

enter image description here

2 个答案:

答案 0 :(得分:4)

添加, { idGeneration: 'MONGO' }解决了问题:

SimpleTable = new Mongo.Collection("simpletable", { idGeneration: 'MONGO' });

谢谢 B. Clay Shannon 指向https://stackoverflow.com/a/33228422

的链接

答案 1 :(得分:1)

这是从MongoDB自动生成的ObjectId,您可以将其用作数据的标识符或主键