Я настраиваю форму и сохраняю пользовательские данные в базе данных 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())
если я использую selectizeInput, он вставляет все как массив: допустим, это ввод: description: "something", tags: ["first", "second"], я вижу в базе данных как description: [0:"something"], tags: [0:"first", 1:"second"]. то, что я хочу, это description: "something", tags: [0:"first", 1:"second"]. Я надеюсь, что это ясно.





Нашел ответ, просто нужно было добавить toJSON с auto_unbox=TRUE. Это было простое решение.
какая у тебя проблема?