我有一个带有日期元素的模式:
var a = new mongoose.Schema({
name : String,
date : Date,
});
我正在使用以 2005-08-13
格式存储日期的数据当我插入数据时,它会很好。我在mongo控制台中查询它,它是作为日期(小时设置为12:00等,这很好)。
问题是,当我尝试进行查找时,特别是来自node.js:
models('meetings').findOne({ name: result.meeting.$.name }, { date: result.meeting.$.date }, function (err, meeting) {
日期标准始终返回true - 即无论如何总是匹配。特别是它认为“2008-04-06”是“2008-04-21”的匹配。
有什么想法吗?
答案 0 :(得分:1)
您的查询条件中未包含date
,因为您将其作为字段选择对象(第二个参数)传递给findOne
。因此,您目前只是通过name
查询。
将两个查询条件放在一个对象中:
models('meetings').findOne(
{ name: result.meeting.$.name, date: result.meeting.$.date },
function (err, meeting) { ...