2013-04-04 178 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);