2014-10-31 61 views
2

我嘗試轉換StringObjectId獲取貓鼬的ObjectId:從字符串

var _id=mongoose.Types.ObjectId(req.body.notebook); 

筆記本價值實際上是一個文檔在database的ID:

> db.notebook.findOne() 
{ 
    "title" : "My Notebook", 
    "isActive" : false, 
    "_id" : ObjectId("54505ced1fa5b1b519bdfc88"), 
    "notes" : [ ], 
    "__v" : 0 
} 

我調試該方法看起來像這樣:

mongoose.types.ObjectId("54505ced1fa5b1b519bdfc"); 

我得到一個錯誤這樣的效果,同時調試:

ObjectId must either be a 12 byte string or 24 hex charecters. 

從方法ObjectId.isValid。我會出現此錯誤是否嘗試過使用鑄造:

mongoose.Types.ObjectId.fromString(req.body.notebook); 

mongoose.mongo.BSONPure.ObjectID.fromString(req.body.notebook); 

我明白,我必須將此字符串轉換爲適當的十六進制格式。如何才能做到這一點?

回答

3

「54505ced1fa5b1b519bdfc」 - 只有22個字符長。它不完整。