Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Meteor.js 1.0:如何使用此属性在ObjectId之外返回一个_id?_Javascript_Mongodb_Meteor_Nitrousio - Fatal编程技术网

Javascript Meteor.js 1.0:如何使用此属性在ObjectId之外返回一个_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)

我正在通过网站上的简单教程来了解会话变量,但是检索对象id时遇到了问题

当我逐字按照说明操作时,我最终得到以下代码:

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的事!