同一模式中的Mongoose查询

时间:2017-02-04 13:06:45

标签: javascript node.js mongodb mongoose mongoose-schema

是否可以在同一架构中执行查询? 例如,如果我有一个具有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'}

1 个答案:

答案 0 :(得分:0)

  

new Date()以Date对象的形式返回当前日期。 mongo shell使用ISODate帮助程序包装Date对象。 ISODate是UTC。

因此您可能需要更改:

var today = Date.now();

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

另外,请查看this