2017-11-20 4 views
1

多くのドキュメントを作成していますが、サーバーの帯域幅の半分が新しいドキュメントを呼び出し元に返すのに費やされていると思います。MongoDB/mongooseでドキュメントを返さずに作成する

私はサーバにドキュメントを返送したくありません。ドキュメントが保存されたら、承認を得たいだけです。

私は文書の更新時Model.updateOne()代わりのModel.findOneAndUpdate()を使用することによって、この問題に対処することができました。

しかし、ドキュメントを作成するときにどうすればいいですか?

これまでのところ、私が試してみました:

Model.create(docData) 

new Model(docData).save() 

Model.collection.insert(docData) 

Model.collection.insertMany([docData]) 

しかし、すべての場合、マングース(またはMongoDBのドライバ)内は私にドキュメントを返します。

MongoDBが実際にドキュメントをネットワーク経由で送り返しているのか、新しい_idを返送しているだけで、ドライバによって元のデータに追加されているのか分かりません。しかし私は前者を恐れる。

MongoDBが私にそれを送り返すことなく文書を保存するにはどうしたらいいですか?

答えて

1

mongoose document of insertManyによると、結果はinsertWriteOpCallbackであり、mongodbドライバのドキュメントによれば、それは挿入されたドキュメントを返すと言われています。他の手で


mongodb documentation about insertは、任意の文書を返していませんWriteResult objectについて教えてくれる。


答えは、mongodb-driverが挿入されたドキュメントをその応答に追加していることです。あなたは何ができるか


は、あなたが挿入を実行し、(その書類なし)のみのMongoDB応答を取得することができた、MongoDBのネイティブドライバからメソッドbulkWriteを使用することです。

+1

ありがとうございました。私は実際にワイヤーを越えていない限り、ドライバーから文書を戻すことは本当に気にしません。ドキュメントを調べると、 'findOneAndUpdate'を除いて、これらの関数のどれもがドキュメントを送り返していないようです - それは単にマングースやドライバからの錯覚です。 – joeytwiddle

関連する問題