Mongoose、Express、NodeJSを使用して承認システムを実装しています。Mongoose save()はfindOne()の前に返します
各投稿には2セットの承認があります。私は以下のようにモデルを実装している
:
Post Schema:
var PostSchema = new Schema({
UserId: { type: ObjectId, unique: true, default: null },
/..
.. Object related fields
../
Approval1: Object, //chidschema objects of approver
Approval2: Object
});
Approval Mapping Schema:
var ApprovalMapSchema = new Schema({
UserId: { type: ObjectId, unique: true, default: null },
Approver1Id: { type: ObjectId, default: null },
Approver2Id: { type: ObjectId, default: null }
});
私は関数内で最初のマッピングを検索し、保存上の主要ポストオブジェクトを更新しようとしています。
新しい投稿を保存する前に、両方の承認者IDを取得する必要があります。
良いことを提案してください。私は現在やっている:
-
と
- 保存新しいPostオブジェクトの保存// リターンが第二ステップの後、私は非同期でマングースで保存 をKNWが、私はステップ2が呼び出されたくない 前にこの
- 取得ApprovalMapSchemaでのfindOneの承認者ID
更新承認者エントリを持つオブジェクトを投稿します。
post.save(関数(errは、DOC){ 場合(ERR){}他 { はconsole.log({成功:trueの場合、メッセージ: '成功した作成された新しいポスト'、内容:DOC}) ; } });
/*var actId = activation._id, distributorId, ttlId; var approvalMap = ApprovalMap.findOne({ userId: myUserId }, function(err, appMap) { if (err) throw err; else{ Approver1Id = appMap.Approver1Id; Approver2Id = appMap.Approver2Id; } }); // Create child objects after this and update as subdocument
これは私のために働いていません。助けてください!
ありがとうございます@ user2263572 .. ** asyc **はトリックをしました...これは救い主であり、これは非常に苦労しています! – andoidbaby