繁体   English   中英

如何使用猫鼬在MongoDB中的日期字段上创建查询?

[英]How to create a query on a Date field in MongoDB using mongoose?

我正在尝试查询Mongo数据库中的集合,以获取日期范围内带有“ Time字段的所有记录。 Time在数据库中定义为“日期”。
我的环境:Node.js,Express,Jade,javascript。

这是javascript代码:

var query = {};
var timeQuery = {};
timeQuery["$lt"] = new Date().toISOString();
query["Time"] = timeQuery;
console.log(query);
db.model('testruns').find(query).exec(function (err, testruns) {
    console.log(testruns.length);
    // doing something
});

结果打印到控制台:

{时间:{'$ lt':'2014-10-30T15:04:39.256Z'}}
0

查询返回0个结果(应该有更多结果)

顺便说一句... RoboMongo的运行日期查询返回结果,只是错误的结果。 例如:

db.testruns.find({Time : {"$gte" : new Date("2014-10-30T15:13:37.199Z")}})

返回所有记录。

我试过的:当然, 这一个那个另一个 ,猫鼬的文档,以及Google的许多其他结果。

他们中的大多数都给出了相同的答案,但没有一个对我有用。 救命!

据我所知,您没有在查询中包含要引用的字段,您可以尝试以下操作:我假设您的字段名称为“时间”

var date = new Date(); //or the date you want to compare
db.model('testruns').find({"Time":{"$lt":date}}).exec(function (err, testruns) {
    console.log(testruns.length);
    // doing something
});

问题与模式定义有关,而不与该代码直接相关。 查询的代码是正确的。 架构定义将此字段(Time)作为字符串,这导致MongoDB尝试在日期字段中查找字符串...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM