mongoengine
というクエリをたくさん作成する必要があるため、私は自分自身をあまり頻繁に繰り返さないようにする関数を作成しようとしました。mongoliteクエリを作成する関数に文字列を渡すにはどうすればよいですか?
library(mongolite)
m <- mongo('test', 'test', url = testurl)
mydata <- m$find('{"field1": "foo", "field2": "bar"}')
そして、私の機能は次のとおりです:クエリのために実行するための基本的なコードがある
get_mongo_data <- function(field1, field2, mongoconnection = m){
mongo_string = toJSON(paste0('\'{\"field1": \"', field1,
'\", "field2": \"', field2, '\"}\''))
dataset <- mongoconnection$find(mongo_string)
return(dataset)
}
しかし、私はそれを使用しようとすると、それが失敗しました。
mydata <- get_mongo_data('foo', 'bar') # fails
が起こっているのかを見るために、私は私の機能が実際にクエリに渡すいたものを見て:
> (mongo_string = toJSON(paste0('\'{\"field1": \"', field1,
'\", "field2": \"', field2, '\"}\'')))
["'{\"field1\": \"foo\", \"field2\": \"bar\"}'"]
私はそれが一致していないことがわかります。文字列の両側に["
を追加します。しかし、toJSON
機能せず、私はError: Invalid JSON object: '{"field1": "foo", "field2": "bar"}'
は、私は、文字列を受け取り、mongolite
クエリの結果を返す関数を書くことができるように、このようにJSONオブジェクトに文字列を渡すためにどのような方法があり得ますか?