0
我剛剛把我的督促服務器上我的web應用程序,我發現了一個令人驚訝的問題:
var username = 'foo';
var User = this.db.model('User', UserSchema);
User.findOne({ $or: [ { username: username }, { email: { value: username } } ] }, 'id', function(err, Doc) {
if (err) {
console.log(err);
}else if (Doc) {
console.log('OK');
}else {
console.log('Any result');
}
});
這完全相同的代碼工作在我的本地主機,但不我的prod服務器(我在我的生產服務器上的else
條件以及本地主機上的else if (Doc)
)。
我在findOne
調用之前打印了我的變量username
,並且我手動檢查了此用戶名確實存在。
如果我放棄$or
運營商,只適用於username
條件,它的工作原理!這是運營商對此故障負責的證明。
我在兩個環境("mongoose": ">=3.5.4"
)上都以同樣的方式更新我的節點模塊。
我的MongoDB的版本是兩個environements相同:
db version v2.0.4, pdfile version 4.5
git version: nogitversion
我的本地服務器:unbuntu
。 我的產品服務器:debian
。
我們如何解釋?
謝謝。
是生產服務器上什麼版本的MongoDB? – JohnnyHK 2013-02-15 19:45:15
兩者都是一樣的:'db版本v2.0.4,pdfile版本4.5 git版本:nogitversion ' – Ludo 2013-02-15 19:51:25
'id'函數是怎麼回事?錯字? – JohnnyHK 2013-02-15 19:58:32