我在mongoose中有一个简单的查询:
var emails = [];
User.find({ subscribed: true })
.exec(function(err, users) {
console.log(users)
if (err) {
console.log(err)
}
async.forEach(users, function(user, callback) {
if (emails.indexOf(user.email) == -1) {
console.log(user.email)
emails.push(user.email)
send(post, user.email)
callback()
}
})
})
有3个用户。当我运行此查询时,只返回一个查询,并且它始终是相同的用户。当我用User.find({ subscribed: true })
替换行User.find({})
时,系统会返回所有帐户,但是当用户在控制台中打印时,他们都会清楚地显示subscribed: true
。
此外,查询在我的本地开发环境中按预期执行。该问题仅发生在我的生产服务器上。这可能是mongo / mongoose / Node版本问题吗?
答案 0 :(得分:0)
试试这个:
var emails = [];
User.find({ subscribed: true },(function(err, users) {
console.log(users)
if (err) {
console.log(err)
}
async.forEach(users, function(user, callback) {
if (emails.indexOf(user.email) == -1) {
console.log(user.email)
emails.push(user.email)
send(post, user.email)
callback()
}
})
})