2013-08-27 117 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) { 
    ... 
}