2013-08-27 57 views
2

我有一個NodeJS應用程序,它具有一個函數,它接受一個id並從我的MongoDB數據庫返回一個對應於該id的對象。該id可以匹配我的模型中的_id(ObjectID)或external_id(string),爲什麼我想過濾出id等於_id或等於external_id的對象。我寫了這個代碼,但它似乎沒有工作,當我在跑的NodeJS它,但它工作正常,如果我嘗試在蒙戈在終端:

myModel.findOne({$or: [{_id: my_id}, {external_id: my_id}]}, function (err, model) { 
    ... 
}); 

由於它工作在終端我猜有可能是兩個模型對象的不同類型的問題,但我無法弄清楚。 my_id是一個字符串。

感謝您的任何建議。 馬蒂亞斯

回答

2

發現實際上將返回一個指針,只有一條記錄相匹配,即使,你將需要通過遊標迭代,試試這個:

myModel.find({$or: [{_id: my_id}, {external_id: my_id}]}).nextObject(function (err, model) { 
    ... 
}