首页 文章

同一模式中的Mongoose查询

提问于
浏览
0

是否可以在同一模式中执行查询?例如,如果我有一个具有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: 'Cast to date failed for value "lastUpdated" at path "nextHearing"', name: 'CastError', type: 'date', value: 'lastUpdated', path: 'nextHearing' }

1 回答

  • 0

    new Date()将当前日期作为Date对象返回 . mongo shell使用ISODate帮助程序包装Date对象 . ISODate是UTC .

    所以你可能需要改变:

    var today = Date.now();
    

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

    另外,看看this

相关问题