【发布时间】:2016-07-14 09:54:56
【问题描述】:
我正在使用 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。
请提出一个好的方法来解决它。我目前正在做:
- 保存新的 Post 对象并保存 //第二步后返回,我知道 以异步方式保存在猫鼬中,但我不希望在此之前调用第 2 步 这个
- 在 ApprovalMapSchema 上使用 findOne 获取批准者 ID
-
使用批准者条目更新 Post 对象。
post.save(函数(错误,文档){ 如果(错误){} 别的 { console.log({success: true, msg: '成功创建新帖子', 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
这对我不起作用。请帮忙!
【问题讨论】: