Rmongodb 打包日期对象
Posted
技术标签:
【中文标题】Rmongodb 打包日期对象【英文标题】:Rmongodb package date object 【发布时间】:2015-02-03 06:15:28 【问题描述】:我在 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 将日期时间对象视为字符串而不是日期变量。
知道如何解决这个问题吗?
【问题讨论】:
【参考方案1】:请使用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 解析。
附:事实上mongo.bson.from.JSON
在后台使用它。
【讨论】:
谢谢德米特里先生。我们注意到的另一件事是,当我们使用 mongo.find.all 或 mongo.find.batch 函数从 MongoDB 导入 R 中的数据时,不会保留字段的原始数据类型,因为字段在一个或多个文档中采用字符值。 (例如“空”)。在导入这些字段并将其转换为 R 数据帧后,它将被视为字符变量。我们如何用 NA 替换这些“空”值并保留 MongoDB 的原始数据类型。当我们在 read.csv 函数中使用 na.strings = "null" 参数导入 CSV 文件时,这些类型化功能已经可用。 请填写问题报告并在github.com/mongosoup/rmongodb/issues提供可重现的示例。 该问题已通过github.com/mongosoup/rmongodb/issues/76 的可重现示例报告。 – user76170以上是关于Rmongodb 打包日期对象的主要内容,如果未能解决你的问题,请参考以下文章