是否可以在同一架构中执行查询? 例如,如果我有一个具有2个日期字段的模式,我需要找到一个Date字段大于另一个的数据。 这是我的架构和代码示例。
var Schema = mongoose.Schema;
var someSchema = new Schema({
someId : { type: String, default: '' ,index:true, unique: true },
userName : { type: String, default: ''},
fullName : { type: String, default: '' },
created : {type: Date, default:''},
lastUpdated : {type: Date, default:''},
primaryGroupId : {type:String,default:''},
nextHearing : {type: Date, default:''},
status : {type:String,default:'open'},
});
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){
当我运行程序时,出现以下错误
{message:'对于路径“nextHearing”',值为“lastUpdated”的当前失败, 名称:'CastError', 输入:'date', 值:'lastUpdated', 路径:'nextHearing'}
答案 0 :(得分:0)
new Date()以Date对象的形式返回当前日期。 mongo shell使用ISODate帮助程序包装Date对象。 ISODate是UTC。
因此您可能需要更改:
var today = Date.now();
到
var today = new Date().toISOString();
另外,请查看this