2013-04-04 138 views
2

我试图用猫鼬构造查询相当于这个SQL:猫鼬查询未定义

select * from problems where tutorialNumber is not null 

我已经试过:

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

它返回一个错误:CastError:投射到字符串未能在路径“tutorialNumber”的值“未定义”

什么是正确的方法来做到这一点?

+0

请张贴您的架构的'问题'模型。这可能是根源问题所在。 –

+1

你试过'.ne(null)'而不是'.ne(undefined)'吗? – PinnyM

回答

1

有几种语法选项。我相信你的代码是可以的,除了你应该使用null而不是undefined。我宁愿这是一个有点接近正常蒙戈外壳的样式:

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

,或者你可以做

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

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

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

2

感谢您的回复。我发现了另一种方式来做到这一点:

var q = Problem.find().exists('tutorialNumber', true); 
q.exec(callback);