我正在尝试使用mongoose来构造一个与此SQL等效的查询:
select * from problems where tutorialNumber is not null
我试过了:
var q = Problem.find().where('tutorialNumber').ne(undefined);
q.exec(callback);
它返回了一个错误:CastError:对于路径“tutorialNumber”中的值“undefined”,转换为字符串失败
这样做的正确方法是什么?
答案 0 :(得分:2)
感谢您的回复。我找到了另一种方法:
var q = Problem.find().exists('tutorialNumber', true);
q.exec(callback);
答案 1 :(得分:1)
有几种语法选项。我相信您的代码没有问题,除非您使用null
而不是undefined
。我更喜欢与普通mongo shell更接近的风格:
Problem.find({tutorialNumber: {$ne: null}}, callback);
或者你可以做
Problem.find().ne('tutorialNumber', null).exec(callback);
但我相信您使用where
和ne
的方式也是正确的。
但是,CastError
可能意味着您的架构中存在问题(可能是尝试嵌套模型而不是嵌套架构)。