1

我在 MongoDb 中有一个集合,正在尝试使用 rmongodb 包将数据导入 R。我想根据我的数据库中存在的日期和时间对文档进行子集化。

所以我使用 rmongodb 包下定义的 mongo.find.all 函数如下:尝试提取特定日期时间点之前的文档。

query<-mongo.bson.from.JSON('{"Date_time":{"$lte":"2015-1-5 20:00:00"}}')
sample<-mongo.find.all(mongo,db.coll,query)

我根本没有得到任何输出。

R 将日期时间对象视为字符串而不是日期变量。

知道如何解决这个问题吗?

4

1 回答 1

2

请使用mongo.bson.from.list()函数,它直接将 R 的类型转换为 MongoDB 类型。

posix_time <- strptime(x = "2015-1-5 20:00:00", format = '%F')
query <- mongo.bson.from.list(list("Date_time" = list("$lte" = posix_time)))
sample <- mongo.find.all(mongo,"db.coll",query)

mongo.bson.from.list()更快,因为它避免了 JSON 解析。

PS 实际上mongo.bson.from.JSON在引擎盖下使用它。

于 2015-02-03T15:28:46.147 回答