2016-08-14 7 views
0

ドキュメントをMongoDBコレクションに挿入して、新しく作成したドキュメントのIDを返す必要があります。 insertOne()メソッド(https://docs.mongodb.com/manual/tutorial/insert-documents/#db-collection-insertone)はこれには最適ですが、私の現在のバージョンのMongoはinsert()メソッド(上記のリンクされた同じページのドキュメント)に制限されています。このメソッドは、挿入されたドキュメントのobject_idを返しません。save()メソッドも同じです。新しく挿入されたドキュメントのIDを返す - mongoDB

collection.insert():

> db.urls.insert({"url":"https://www.google.com"}) 
WriteResult({ "nInserted" : 1 }) 

collection.save():

> db.urls.save({"url":"https://www.google.com"}) 
WriteResult({ "nInserted" : 1 }) 

私はここで使用するためのより適切な方法はありますか?

MongoDB - Return id of inserted itemしかし、彼らが使っているsave()メソッドが私が見ているものと同じかどうかは分かりませんが、それはデータベース上で動作しているようですオブジェクト対コレクション。私はこのコードを入力すると、トップの答えの例を以下試してみました:

db.urls.save(function(err,result) 
    { response = {id:result._id} 
    res.json(response) 
}) 

はモンゴシェルにこれを入力した後、一般的な構文エラーを受信しました。

ありがとうございました!

答えて

0

私は、MongoDB自体ではなく、Node.js ドライバについて質問しています。私の経験から、SQLを使用しました。私の質問は関連するものではありません。 SQL Serverで新しく挿入されたレコードのID - このタスクは、ドライバの責任です。 - 可能重複ポストで提供Node.jsのドライバのドキュメントを見ると、これは私が探している正確に答えています

http://mongodb.github.io/node-mongodb-native/2.0/api/Collection.html#insert

は、このドキュメントをオフに行くと、次のコードは、まさに私が私を与えます必要:

db.urls.insert({"url":"https://www.google.com"}, function(err, docs) { 
    console.log(docs); 
}) 
関連する問題