2

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

select * from problems where tutorialNumber is not null

我试过了:

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

它返回一个错误: CastError: Cast to string failed for value "undefined" at path "tutorialNumber"

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

4

2 回答 2

3

感谢您的回复。我找到了另一种方法:

var q = Problem.find().exists('tutorialNumber', true);
q.exec(callback);
于 2013-04-04T21:58:28.860 回答
1

有几个语法选项。我相信你的代码是好的,除了你应该使用null而不是undefined. 我更喜欢更接近普通 mongo shell 的风格:

Problem.find({tutorialNumber: {$ne: null}}, callback);

或者你可以做

Problem.find().ne('tutorialNumber', null).exec(callback);

但我相信你使用的方式where也是ne正确的。

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

于 2013-04-04T18:32:24.097 回答