[解決済み] Mongoose/Node.jsで複数のドキュメントを同時に保存するにはどうしたらいいですか?
2023-04-06 03:38:06
質問
現在、私は1つのドキュメントを追加するために保存を使用しています。 私が単一のオブジェクトとして保存したいドキュメントの配列を持っているとします。 単一の関数呼び出しでそれらをすべて追加し、それが完了したときに単一のコールバックを取得する方法はありますか? 私はすべてのドキュメントを個別に追加することができましたが、すべてが完了したときにワークアウトするコールバックを管理することは問題でしょう。
どのように解決するのですか?
Mongoose にはまだ一括挿入が実装されていません ( 問題番号723 ).
保存するドキュメントの数がわかっているので、このように書くことができます。
var total = docArray.length
, result = []
;
function saveAll(){
var doc = docArray.pop();
doc.save(function(err, saved){
if (err) throw err;//handle error
result.push(saved[0]);
if (--total) saveAll();
else // all saved here
})
}
saveAll();
もちろん、これはその場しのぎの解決策であり、何らかのフローコントロールライブラリ(私は q を使用していますが、これは素晴らしいものです)。
関連
-
[解決済み】Heroku + node.jsのエラー(Webプロセスが起動後60秒以内に$PORTにバインドできなかった)。
-
[解決済み] Node.jsのプログラムにコマンドライン引数を渡すにはどうしたらいいですか?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] Node.jsで終了する方法
-
[解決済み] Node.jsアプリケーションをデバッグするにはどうすればよいですか?
-
[解決済み] Node.jsを完全にアンインストールして、最初から再インストールする方法 (Mac OS X)
-
[解決済み] Node.jsのmodule.exportsの目的と使い方を教えてください。
-
[解決済み] Node.js上のExpress.jsでGET(クエリ文字列)変数を取得する方法とは?
-
[解決済み] Node.jsのnpmモジュールをアンインストールするにはどうすればよいですか?
-
[解決済み】Node.jsでBase64エンコードを行うにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] テスト
-
[解決済み】モジュール '@babel/core' が見つかりません。
-
[解決済み】MongooseでEnumを作成し使用する方法
-
[解決済み】Mongooseで、日付でソートするにはどうしたらいいですか?(node.js)
-
[解決済み】POSTできない/expressを使用するとエラーが発生する
-
[解決済み] create-react-app、インストールエラー("コマンドが見つからない")。
-
[解決済み] E: npm パッケージを見つけることができません。
-
[解決済み] http-server コマンドが見つかりません。
-
[解決済み] NodeJsのSequelizeでautoIncrementはどのように動作するのですか?
-
[解決済み] エラーです。Cannot find module 'ejs'