gpt4 book ai didi

r - r mongolite-日期查询

转载 作者:行者123 更新时间:2023-12-04 09:27:19 26 4
gpt4 key购买 nike



使用mongolite中的R包,如何查询给定日期的数据库?

示例数据

考虑具有两个条目的test集合

library(mongolite)

## create dummy data
df <- data.frame(id = c(1,2),
dte = as.POSIXct(c("2015-01-01","2015-01-02")))

> df
id dte
1 1 2015-01-01
2 2 2015-01-02

## insert into database
mong <- mongo(collection = "test", db = "test", url = "mongodb://localhost")
mong$insert(df)


Mongo Shell查询

要查找给定日期之后的条目,我将使用

db.test.find({"dte" : {"$gt" : new ISODate("2015-01-01")}})


如何使用 Rmongolite中重现此查询?

R次尝试

到目前为止,我已经尝试过

qry <- paste0('{"dte" : {"$gt" : new ISODate("2015-01-01")}}')
mong$find(qry)
Error: Invalid JSON object: {"dte" : {"$gt" : new ISODate("2015-01-01")}}

qry <- paste0('{"dte" : {"$gt" : "2015-01-01"}}')
mong$find(qry)
Imported 0 records. Simplifying into dataframe...
data frame with 0 columns and 0 rows

qry <- paste0('{"dte" : {"gt" : ', as.POSIXct("2015-01-01"), '}}')
mong$find(qry)
Error: Invalid JSON object: {"dte" : {"gt" : 2015-01-01}}

qry <- paste0('{"dte" : {"gt" : new ISODate("', as.POSIXct("2015-01-01"), '")}}')
mong$find(qry)
Error: Invalid JSON object: {"dte" : {"gt" : new ISODate("2015-01-01")}}

最佳答案

@ user2754799具有正确的方法,但是我作了一些小改动,以回答我的问题。如果他们想使用此解决方案编辑答案,我会接受。

d <- as.integer(as.POSIXct(strptime("2015-01-01","%Y-%m-%d"))) * 1000
## or more concisely
## d <- as.integer(as.POSIXct("2015-01-01")) * 1000
data <- mong$find(paste0('{"dte":{"$gt": { "$date" : { "$numberLong" : "', d, '" } } } }'))

关于r - r mongolite-日期查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34454034/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com