我似乎连最基本的日期查询都无法在MongoDB中工作。使用看起来像这样的文档:
{
"_id" : "foobar/201310",
"ap" : "foobar",
"dt" : ISODate("2013-10-01T00:00:00.000Z"),
"tl" : 375439
}
查询如下所示:
{
"dt" : {
"$gte" : {
"$date" : "2013-10-01T00:00:00.000Z"
}
}
}
我从执行中获得0个结果:
db.mycollection.find({
"dt" : { "$gte" : { "$date" : "2013-10-01T00:00:00.000Z"}}
})
你知道为什么这样不行吗?
作为参考,此查询是由Spring的MongoTemplate生成的,因此我无法直接控制最终发送到MongoDB的查询。
(P. S.)
> db.version()
2.4.7
谢啦!
尝试以下操作:
{ "dt" : { "$gte" : ISODate("2013-10-01") } }
从MongoDB cookbook页面评论:
"dt" :
{
"$gte" : ISODate("2014-07-02T00:00:00Z"),
"$lt" : ISODate("2014-07-03T00:00:00Z")
}
这对我有用。在完整上下文中,以下命令获取日期字段中日期为2013-10-01(YYYY-MM-DD)Zulu的每条记录:
db.mycollection.find({ "dt" : { "$gte" : ISODate("2013-10-01T00:00:00Z"), "$lt" : ISODate("2013-10-02T00:00:00Z") }})
虽然$date是MongoDB扩展JSON的一部分,这是您在mongoexport中得到的默认值,但我认为您不能真正将其用作查询的一部分。
如果尝试使用$date
进行精确搜索,如下所示:
db.foo.find({dt: {"$date": "2012-01-01T15:00:00.000Z"}})
您将得到以下错误:
error: { "$err" : "invalid operator: $date", "code" : 10068 }
尝试以下操作:
db.mycollection.find({
"dt" : {"$gte": new Date("2013-10-01T00:00:00.000Z")}
})
或(以下是@user3805045的评论):
db.mycollection.find({
"dt" : {"$gte": ISODate("2013-10-01T00:00:00.000Z")}
})
也可能需要ISO日期来比较没有时间的日期(由@MattMolnar注释)。
根据mongo Shell中的数据类型,两者都应等效:
mongo shell提供了各种方法来返回日期,可以是字符串或日期对象:
{"$date":"ISO-8601 string"}
可以在需要严格的JSON表示时使用。一个可能的例子是Hadoop连接器。
问题内容: 我似乎甚至无法获得最基本的日期查询来在MongoDB中工作。使用看起来像这样的文档: 和一个查询,看起来像这样: 我从执行中得到 0个结果 : 知道为什么这行不通吗? 作为参考,此查询由Spring的MongoTemplate生成,因此我无法直接控制最终发送给MongoDB的查询。 (PS) 谢谢! 问题答案: 尽管它是MongoDB Extended JSON 的一部分,但这是您默认
我的代码看起来像 我的文件如下所示 当我运行程序时,我看到 我怎样才能修好它呢?
我正在构建这样的查询: 它构建了这个查询: 因此,它失败了。 它将查询作为发送,而不是。 我是说,元数据。价值digitalitzacio。dataDigitalitzacio作为ISODate存储到集合中: 但它是作为一个日期长的查询的。我怎么解决这个问题?
问题内容: 我在使用该功能时遇到了麻烦。 我只需要知道SQL查询是否返回零行。 我已经尝试过以下简单的语句: 类型是哪里。上面的代码似乎不起作用。无论是否为空,它将始终打印该消息。 我检查了SQL查询本身,当存在行时它正确返回了非空结果。 关于如何确定查询是否已返回0行的任何想法?我用谷歌搜索,找不到任何答案。 问题答案: ResultSet.getFetchSize()不返回结果数!从这里: 使
问题内容: 我正在尝试在mongodb中执行查询日期,但结果始终为空。我的查询如下: //变量resultaMongo返回空。 Obs:我也尝试不使用.isoformat(),当我直接放入mongodb时,只有添加ISODate才返回结果。因此不会返回结果: 更重要的是,如果您编辑返回: 这是数据库中的记录序列: 如果我打印python的json变量,则会看到类似以下内容的内容: 我的Mongnd
我有两个集合。如果集合2中的1号和2号在集合1中指定的一定范围内,我正在尝试将集合2的文档添加到集合1中。集合1中的FYI ObjectId和集合2中的ObjectId指的是两个不同的项目/产品,因此我无法在此id上加入两个集合。 集合1中的示例文档: 集合2中的示例文档: 我想要输出: 我认为使用管道的查找阶段可以工作。我的代码当前如下: 但是运行上面的没有给我输出。我做错了什么吗??