如何在保存用户架构的帖子中查询公司名称?
UserSchema.post('save', function (doc) {
console.warn("POST SAVE", doc);
console.log(this, "---------------------------------------------");
this.findOne({_id:doc._id})
.populate('company')
.exec(function (err, _user) {
if(err) return next(err);
else{
// console.warn("_USER", _user);
if(_user.company.name) doc.companyName = _user.company.name;
Sync.syncUser(doc)
.then(function (_r) {
// console.log(_r,"<-----------------------------------------------------------");
if (_r) {
console.warn("POST SAVE -> SYNC OK!");
next();
} else {
console.warn("POST SAVE -> SYNC ERR: ", err);
return next(err);
}
})
.fail(function (err) {
console.warn("POST SAVE -> SYNC ERR: ", err);
return next(err);
});
}
});
});
使用此代码我有一个错误:
TypeError:this.findOne不是函数
答案 0 :(得分:2)
尝试x00\x00"
代替User.findOne()
或使用this
您可能需要做的第一种方式
this.constructor.findOne
答案 1 :(得分:0)
doc.constructor.findOne
对我不起作用。我使用public class MainItem {
private String name;
private List<subItem> subItems;
}
public class subItem {
private String id;
private String groupId;
private String displayName;
private Status status;
}
。