这是在Group模型中,在组模型中保存prehook,其正则表达式已更新以供用户搜索。但是mongoose返回“User.find不是函数”,当我在console.logged用户时返回一个空的Object({})。为什么我不能在Group中查询用户保存prehook?
var User = require('./User')
...
_schema.pre('save', function (next) {
this.regex = ''
if (!this.users) { return next() }
var userIds = this.users.map(s => s._id)
User.find({ _id: { $in: userIds } }).select('name surname').lean().then(docs => {
docs.forEach(d => {
this.regex += (' ' + d.name + ' ' + d.surname)
})
next()
})
})
答案 0 :(得分:1)
只需移动钩子内的用户定义即可。
_schema.pre('save', function (next) {
var User = require('./User')
this.regex = ''
if (!this.users) { return next() }
var userIds = this.users.map(s => s._id)
User.find({ _id: { $in: userIds } }).select('name surname').lean().then(docs => {
docs.forEach(d => {
this.regex += (' ' + d.name + ' ' + d.surname)
})
next()
})
})