2017-02-04 63 views
0

是否可以在同一架構內執行查詢? 例如,如果我有一個具有2個日期字段的模式,並且我需要查找其中一個日期字段大於另一個的數據。 這是我的模式和代碼示例。同一架構內的貓鼬查詢

var Schema = mongoose.Schema; 
 

 
var someSchema = new Schema({ 
 
\t someId \t   : \t \t { type: String, default: '' ,index:true, unique: true }, 
 
\t userName \t \t \t : \t \t { type: String, default: ''}, 
 
\t fullName \t \t \t : \t \t { type: String, default: '' }, 
 
\t created \t \t \t : \t \t {type: Date, default:''}, 
 
\t lastUpdated \t \t \t : \t \t {type: Date, default:''}, 
 
\t primaryGroupId \t \t : \t \t {type:String,default:''}, 
 
\t nextHearing \t \t \t : \t \t {type: Date, default:''}, 
 
\t status \t \t \t : \t {type:String,default:'open'}, 
 
\t 
 
}); 
 

 

 

 
mongoose.model('Problem', someSchema);

下面的代碼是我的查詢。

var problemModel = mongoose.model('Problem'); 
 

 
var today = Date.now(); 
 

 
problemModel.find({$and:[{'nextHearing':{$lte: today}},{'nextHearing':{$gte : 'lastUpdated'}}]},function(err, result){

當我運行程序時,我收到以下錯誤

{消息: '演員,至今也沒有爲值 「LASTUPDATED」 在路徑 「nextHearing」', 名稱:'CastError', 類型:'date', value:'lastUpdated', path:'nextHearing'}

回答

0

new Date()將當前日期作爲Date對象返回。 mongo shell用ISODate助手包裝Date對象。 ISODate使用UTC。

,所以你可能需要改變:

var today = Date.now(); 

var today = new Date().toISOString(); 

而且,看看this

+0

我不認爲這是個問題。 我嘗試使用你的代碼。錯誤是這個'{'nextHearing':{$ gte:'lastUpdated'}}' – puneeth8994

+0

'nextHearing'和'lastUpdated'都是同一模式的字段,是否可以按照我所做的方式進行比較?如果不是,可能的解決方案是什麼? – puneeth8994