使用undefined的Mongoose查询

时间:2013-04-04 18:21:36

标签: node.js mongoose

我正在尝试使用mongoose来构造一个与此SQL等效的查询:

select * from problems where tutorialNumber is not null

我试过了:

    var q = Problem.find().where('tutorialNumber').ne(undefined);
    q.exec(callback);

它返回了一个错误:CastError:对于路径“tutorialNumber”中的值“undefined”,转换为字符串失败

这样做的正确方法是什么?

2 个答案:

答案 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);

但我相信您使用wherene的方式也是正确的。

但是,CastError可能意味着您的架构中存在问题(可能是尝试嵌套模型而不是嵌套架构)。