[解決済み] 保存後のMongooseのポップアップ
2022-09-18 05:31:26
質問
新しく保存されたオブジェクトの作成者フィールドに手動または自動で入力することができません...唯一の方法は、すでに持っているオブジェクトに対して再クエリすることですが、それはしたくありません。
これは設定です。
var userSchema = new mongoose.Schema({
name: String,
});
var User = db.model('User', userSchema);
var bookSchema = new mongoose.Schema({
_creator: { type: mongoose.Schema.Types.ObjectId, ref: 'User' },
description: String,
});
var Book = db.model('Book', bookSchema);
ここで私は髪を引っ張っています
var user = new User();
user.save(function(err) {
var book = new Book({
_creator: user,
});
book.save(function(err){
console.log(book._creator); // is just an object id
book._creator = user; // still only attaches the object id due to Mongoose magic
console.log(book._creator); // Again: is just an object id
// I really want book._creator to be a user without having to go back to the db ... any suggestions?
});
});
EDIT: 最新の mongoose ではこの問題が修正され、populate 機能が追加されています。
どのように解決するのですか?
モデルのpopulate関数を使って、これを行うことができるはずです。 http://mongoosejs.com/docs/api.html#model_Model.populate bookの保存ハンドラで、代わりに。
book._creator = user;
というようなことをすると
Book.populate(book, {path:"_creator"}, function(err, book) { ... });
おそらく、あなたを助けるには遅すぎる答えですが、私は最近これに行き詰まりました、そして、それは他の人のために役立つかもしれません。
関連
-
[解決済み】npx コマンドが見つかりません。
-
[解決済み】Express.js req.bodyが未定義です。
-
[解決済み】nodemon - app crashed - waiting for file changes before start
-
[解決済み】Heroku + node.jsのエラー(Webプロセスが起動後60秒以内に$PORTにバインドできなかった)。
-
[解決済み] Node.jsで「btoaが定義されていない」エラーが発生する
-
[解決済み] -saveと-save-devの違いは何ですか?
-
[解決済み] npm installの-saveオプションは何ですか?
-
[解決済み] Mongooseで文書を更新/アップサートするにはどうしたらいいですか?
-
[解決済み] Mongooseの"__v "フィールドとは?
-
[解決済み】Mongoose: findOneAndUpdateが更新されたドキュメントを返さない
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Node.jsのエラーECONNRESETをデバッグするにはどうすればよいですか?
-
[解決済み】MongoDBでコレクションを日付で並べ替えるには?
-
[解決済み】ブロックスコープの宣言は、ストリクトモード以外ではまだサポートされていません。
-
[解決済み】Heroku + node.jsのエラー(Webプロセスが起動後60秒以内に$PORTにバインドできなかった)。
-
[解決済み] TypeErrorです。リクエストパスにエスケープされていない文字が含まれています。
-
[解決済み] Yarn にパッケージを強制的に再インストールさせるにはどうしたらいいですか?
-
[解決済み] MongoNetworkError: 最初の接続でサーバー [localhost:27017] への接続に失敗 [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017] 。
-
[解決済み] エラー: ノード出力を "|head" にパイプするときに EPIPE を書き込む。
-
[解決済み] "app.use(express.cookieSession())" に "secret" オプションが必要です。
-
[解決済み] ノードのバージョンを管理するためのnまたはnvm - 各バージョンのグローバルモジュールを保持することは良いアイデアですか?