我希望在Shiny的响应式上下文中运行mongolite查询。数据库连接参数已预加载,未在下面显示。(注意: loadData函数出现在第一个代码块中)。该查询在非响应式上下文中可以正常运行。
我似乎找不到在线上使用Shiny和mongolite一起工作的有效示例。任何帮助将不胜感激。在下面的简化示例中,我只是尝试让Shiny返回查询结果中的行数。
谢谢!
我似乎找不到在线上使用Shiny和mongolite一起工作的有效示例。任何帮助将不胜感激。在下面的简化示例中,我只是尝试让Shiny返回查询结果中的行数。
谢谢!
loadData <- function() {
# Connect to the database
db <- mongo(collection = collectionName,
url = sprintf(
"mongodb://%s:%s@%s/%s",
options()$mongodb$username,
options()$mongodb$password,
options()$mongodb$host,
databaseName))
# Read all the entries
data <- db$find(query)
data
}
server <- function(input, output) {
queryResults <- reactive({
########----------BRING IN USER QUERY PARAMETERS----------########
var1 <- "satisfaction"
var2 <- "performance"
var1path <- 20072
var2path <- 30033
########----------DEFINE QUERY PARAMETERS----------########
var1 <- as.character(var1)
var1 <- paste(var1, collapse = "|")
var1JSON <- toJSON (var1)
var2 <- as.character(var2)
var2 <- paste(var2, collapse = "|")
var2JSON <- toJSON (var2)
#-----Creating JSONs for taxonomy codes
var1path <- as.character(var1path)
var1path <- paste(var1path, collapse = "|")
var1path <- toJSON (var1path)
var2path <- as.character(var2path)
var2path <- paste(var2path, collapse = "|")
var2path <- toJSON (var2path)
########----------QUERY STRUCTURE AND EXECUTION----------#########
query <- c('
{"$and":
[
{"$or":
[
{"Var1": { "$regex": ',var1JSON,' }},
{"Var1Path": { "$regex": ',var1path,' }}
]
},
{"$or":
[
{"Var2": { "$regex": ',var2JSON,' }},
{"Var2Path": { "$regex": ',var2path,' }}
]
}
]
}
')
stuff <- loadData()
stuff
})
output$text1 <- renderText(nrow(queryResults()))
queryResults()
在做出何种反应 - 你能否将其中一个vars
设置为从用户输入中读取(例如input$var1
),然后查看它的作用? - tospig