首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R:使用时间戳查询MongoDB (使用mongolite)

R:使用时间戳查询MongoDB (使用mongolite)
EN

Stack Overflow用户
提问于 2016-05-23 22:54:09
回答 1查看 2K关注 0票数 1

我有一个相当大的基于timestamp索引的Mongo数据库。数据库中的每个时间戳的结构方式如下:

代码语言:javascript
复制
"timestamp" : ISODate("2016-05-22T17:05:22.000Z")

我是一个R用户,我试图查询有关每个条目的时间戳的数据库。具体来说,我想检索所有时间戳大于我指定的日期的条目。我目前正在使用mongolite包通过R查询MongoDB,但没有成功。

下面是一个用于检索起诉mongolite的数据的查询的示例:

代码语言:javascript
复制
library(mongolite)

mongo <- mongolite::mongo(url = "mongodb://localhost:27017", 
                      collection = "testCol", 
                      db = "testDB")

fmt <- '%Y-%m-%dT%H:%M:%S.000Z'

rawData <- mongo$find(query = paste0('{
                                       "timestamp" : { 
                                                      "$gte" : "ISODate(', format(Sys.time() - (60 * 60 * 24), fmt),')", 
                                                      "$lt" : "ISODate(', format(Sys.time(), fmt),')" 
                                                     } 
                                      }'))

请注意,我正在格式化时间和日期,以便与上面的MongoDB格式对齐,并且正在尝试提取过去24小时内的所有条目。我还在实际查询中添加了一些字段,但这里没有包括它们。

这个查询显然有什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-23 23:38:16

您需要将日期转换为numberLong,并对此进行查询。

代码语言:javascript
复制
d <- as.integer(Sys.time()) * 1000

rawData <- mong$find(paste0('{"timestamp":{"$gte": { "$date" : { "$numberLong" : "', d, '" } } } }'))

我有一个非常相似的问题

并在mongolite github网站上看到这条线

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37401815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档