2016-04-23 89 views
0

我最近開始使用mongoimport加載mongodb,並意識到它已添加與"_id"關聯的ObjectId字段。當我查詢這種使用「流星蒙戈」命令行正常工作:在Meteor中查詢objectId

meteor:PRIMARY> db.Warehouses.find({"_id":ObjectId("571b7a89a990b5b8779b1315")})  
{ "_id" : ObjectId("571b7a89a990b5b8779b1315"), "name" : "Stephan Lumber", "street" : "23 East St", "city" : "Plano", "state" : "TX"} 
meteor:PRIMARY> 

我的代碼可以使用console.log("id ", currentId)

它返回ObjectID("571b7a89a990b5b8779b1315")

價值currentId包含當前倉庫讀取"_id"值選擇ID。

但是,當我嘗試使用它來訪問代碼中的數據時,我總是收到「未定義」錯誤。我嘗試了很多不同的方式。這裏有幾個:

  1. warehouse = Warehouses.findOne({"_id":Mongo.ObjectID(currentId)});

  2. warehouse = Warehouses.findOne({"_id":ObjectId(currentId)});

而且因爲某些原因 「的ObjectId」 中對後者無法識別。

我不知道還有什麼可以嘗試的。任何幫助,將不勝感激。

+0

我不知道,但'的console.log( 「ID」,currentId)''返回對象ID( 「571b7a89a990b5b8779b1315」)'沒有道理給我? –

+0

確實[this](http://stackoverflow.com/a/35712679/268093)幫助(使用'new')? – MasterAM

回答

0

你不必添加任何像Mongo.ObjectID或ObjectId你只需要直接寫currentId。

warehouse = Warehouses.findOne({"_id": currentId}); 
+0

感謝Pankaj,這是我嘗試的第一件事之一,我仍然得到「未定義」。爲了確保我沒有放棄自己的想法,我只是再次測試它,它仍然返回「未定義」。我結束了必須是有點hacky: –

+0

var warehouseStringID = currentId.slice(currentId.indexOf(''')+ 1,-2); const warehouse = Warehouses.findOne({_ id:new Mongo。 ObjectID(warehouseStringID)}); –

+0

Ddi你試試Warehouses.findOne(currentId),我已經完成了這個CollectionName.remove(mongoObjectId)在我的演示之一,這對我工作。 –

相關問題