Вопросг mongolite - дата запроса
Использование 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)
Монго запрос оболочки
Чтобы найти записи после указанной даты я хотел бы использовать
db.test.find({"dte" : {"$gt" : new ISODate("2015-01-01")}})
Как я могу воспроизвести этот запрос в R
с помощью mongolite
?
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")}}
Потому что as.integer (as.POSIXct (« 2017-06-08 », tz =« GMT », origin =« 1970-01-01 »)) * 1000 возвращает 1.49688 e + 12, я предлагаю вставить «000» вместо умножения на 1000. –