我正在使用 Mongoose、Express 和 NodeJS 实施审批系统。
每个帖子有 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。
请提出一个好的方法来解决它。我目前正在做:
- Save new Post object with Save //在第 2 步后返回,我知道在 Mongoose 中异步保存,但我不希望在此之前调用第 2 步
- 在 ApprovalMapSchema 上使用 findOne 获取批准者 ID
使用批准者条目更新 Post 对象。
post.save(function(err, doc) { if (err) {} else { console.log({success: true, msg: 'Successful created new post', content: 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
这对我不起作用。请帮忙!