#r #mongodb #shiny
#r #mongodb #блестящий
Вопрос:
Я настраиваю форму и сохраняю пользовательские данные в базе данных mongodb с помощью Shiny. Одним из входных данных является массив, и если я использую selectizeInput, все остальные данные становятся массивом.
Я подумал, что это может быть функция sapply, и попробовал также mapply, но получил тот же результат. вот часть кода. Я добавил только часть, связанную с проблемой.
textInput("description"),
selectizeInput("tags", "Tags:", NULL, multiple = TRUE, options=list(create=TRUE)),
formData <- reactive({
data <- sapply(c("description", "tags"), function(x) input[[x]])
data <- c(data, timestamp = epochTime())
data <- t(data)
data
})
сохранение в mongdb:
saveData <- function(data) {
db <- #connection is here
data <- as.data.frame(data)
db$insert(data)
}
saveData(formData())
Комментарии:
1. в чем проблема, с которой вы столкнулись?
2. если я использую selectizeInput , он вставляет все в виде массива: допустим, это входные данные:
description: "something", tags: ["first", "second"]
, которые я вижу в базе данных какdescription: [0:"something"], tags: [0:"first", 1:"second"]
. чего я хочу, так этоdescription: "something", tags: [0:"first", 1:"second"]
. Я надеюсь, это понятно.
Ответ №1:
Нашел ответ, просто нужно добавить toJSON
с auto_unbox=TRUE
помощью. Это было простое решение.