Mongoose find()只返回生产中的一个文档,在开发过程中正常工作

时间:2017-03-12 18:31:48

标签: javascript node.js mongodb mongoose

我在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版本问题吗?

1 个答案:

答案 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()                  
        }
    })
})