所以,我创建了一个简单的应用程序来玩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
});
答案 0 :(得分:4)
添加, { idGeneration: 'MONGO' }
解决了问题:
SimpleTable = new Mongo.Collection("simpletable", { idGeneration: 'MONGO' });
谢谢 B. Clay Shannon 指向https://stackoverflow.com/a/33228422
的链接答案 1 :(得分:1)
这是从MongoDB自动生成的ObjectId
,您可以将其用作数据的标识符或主键