如何在Mongoose findOne()调用中使用Date对象

时间:2014-06-03 08:23:43

标签: javascript mongoose

我有一个带有日期元素的模式:

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”的匹配。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您的查询条件中未包含date,因为您将其作为字段选择对象(第二个参数)传递给findOne。因此,您目前只是通过name查询。

将两个查询条件放在一个对象中:

models('meetings').findOne(
    { name: result.meeting.$.name, date: result.meeting.$.date }, 
    function (err, meeting) { ...