2016-09-14 2 views
0

私はマングース4.4.16を使用した場合に上記のコードは正常に動作しているはマングース4.6.0

var body={}; 
var objId="57b40595866fdab90268321e"; 
body.id=mongoose.Types.ObjectId(objId); 

myModel.collection.insert(body,function(err,data){ 
//causing err; 
}); 

使用したObjectIdの文字列を変換しようとしていますが、私は更新した場合に失敗している私mongooseを最新バージョン(4.6.0)に変更すると、問題が発生します。

のErr

object [ 
    { 
    "_bsontype":"ObjectID", 
    "id:{"0":87,"1":180,"2":5,"3":235,"4":134,"5":111,"6":218,"7":185,"8":2,"9":104,"10":50,"11":111} 
} 
] 
is not a valid ObjectId 

答えて

2

あなたに

var newDocument = new myModel({ 
    _id: mongoose.Types.ObjectId("57b40595866fdab90268321e") 
}); 

newDocument.save(); 

IS-新しいドキュメントを挿入する正しい方法は、それはマングースのとネイティブドライバをMongoのバージョンの違いので、作業を停止し を小文字は区別。

がここ http://mongoosejs.com/docs/api.html#model_Model.insertMany

を見て、あなたが上記の例で、これを実行することができ、または、あなたはまだ insertを使用したい場合は、あなたが(配列の代わりにオブジェクトを渡すことによって) myModel.insertManyを使用することができ、が、
0

私はそれをスパイクする時間がありませんが、私の記憶が正しければidは単純な文字列で、_idがのObjectId、すなわちいずれか

body.id="57b40595866fdab90268321e" 
です10

または前記

body._id=mongoose.Types.ObjectId("57b40595866fdab90268321e"); 

、それは その特定のidでなければならないのでしょうか?そうでない場合は、 new myModel()を使用すると、IDが自動的に作成されます。