Javascript Meteor.js 1.0:如何使用此属性在ObjectId之外返回一个_id?
我正在通过网站上的简单教程来了解会话变量,但是检索对象id时遇到了问题 当我逐字按照说明操作时,我最终得到以下代码:Javascript Meteor.js 1.0:如何使用此属性在ObjectId之外返回一个_id?,javascript,mongodb,meteor,nitrousio,Javascript,Mongodb,Meteor,Nitrousio,我正在通过网站上的简单教程来了解会话变量,但是检索对象id时遇到了问题 当我逐字按照说明操作时,我最终得到以下代码: Template.leaderboard.events({ "click .player": function(){ var playerId = this._id; Session.set("selectedPlayer", playerId); console.log(playerId)
Template.leaderboard.events({
"click .player": function(){
var playerId = this._id;
Session.set("selectedPlayer", playerId);
console.log(playerId)
}
})
当我记录playerId
时,根据教程,我应该以546d2e4e1c9a86a33e37005d
的形式获得id
,但我得到的是:
LocalCollection._ObjectID
{_str: "546d2e531c9a86a33e37005e",
toString: function,
equals: function,
clone: function,
typeName: function…}
然后我想尝试使用toString()
,这最终使等价性测试在教程的后面部分起作用(因此它解决了问题),但它仍然返回了ObjectID(“546d2e461c9a86a33e37005c”)
,而我期望id
没有ObjectID()
的东西
如果没有所有额外的东西,我如何获得id
编辑
可能值得注意的是,我在Chromebook上使用Nitrous.io完成了所有这些。我将Nitrous.io中的代码复制到Meteopad中,它的工作方式与预期的一样
在Nitrous.io中,我能够获得想要的
id
的唯一方法是使用this.\u id.\u str
而不仅仅是this.\u id
。我还是不知道为什么。。。但是事情就是这样。如果在直接将项目插入Mongo db时没有为\u id指定值,它将使用一个特殊的for\u id。如果使用Meteor Collection插入项目,则默认情况下,\u id将使用随机17个字符的字符串。只需使用Meteor collections添加数据,或者在添加数据时手动将_id设置为随机的17个字符字符串。当您将播放器插入集合时,您是自己设置_id
还是让服务器为您设置?我让服务器设置。这不应该发生。你能把它复制出来吗?哈哈。编辑得不错。我警告过你关于nitrous.io的事!