无法获得$或查询与Mongoose的NodeJS工作

我有一个NodeJS应用程序,它具有一个函数,它接受一个id,并从我的MongoDB数据库返回一个对应于上述id的对象。 该id可以匹配我的模型中的_id(ObjectID)或external_id(string),为什么我想过滤掉id等于_id或等于external_id的对象。 我编写了这个代码,但是在NodeJS中运行它时似乎不起作用,但是如果我在terminal中尝试mongo,它工作正常:

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

由于它在terminal工作,我猜可能是两个模型对象的不同types的问题,但我无法弄清楚。 my_id是一个string。

感谢您的任何build议。 马蒂亚斯

发现将实际返回一个游标,即使只有一个logging匹配,你将需要遍历游标,试试这个:

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