Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

190
Visualizações
error al insertar datos en mongodb a través de R si intenta establecer _id

Puedo insertar datos en mongodb alojado en mongolabs desde R, pero en el momento en que intento configurar el campo _id , aparece este error:

 > data<-list("_id"="1fgthhy2334",text="abc",nums=c(1,2,3)) > db$insert(data) Error: can't use an array for _id data<-list("_id"=c("12334"),text="abc",nums=c(1,2,3)) > db$insert(data) Error: can't use an array for _id

¿Alguna idea de por qué cree que estoy tratando de configurar la identificación en una matriz? Ninguna de mis variaciones parece funcionar.

¿Cómo puedo configurar un campo _id en particular para mi identificador seleccionado (único)?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

si lo haces

 jsonlite::toJSON(data) # {"_id":["1fgthhy2334"],"text":["abc"],"nums":[1,2,3]}

verá que se convierte internamente en una matriz (ya que mongolite usa jsonlite para realizar la conversión)

Para insertarlo como un objeto en sí mismo, necesita los datos de entrada como un marco de datos, algo así como

 data <- data.frame("_id" = "1fgthhy2334", text = "abc", nums = c(1,2,3)) data <- aggregate(nums ~ X_id + text, data, list) names(data)[1] <- "_id"

Ahora se convierte en un objeto.

 jsonlite::toJSON(data) # [{"_id":"1fgthhy2334","text":"abc","nums":[1,2,3]}]

por lo que el inserto debería funcionar

 m <- mongo(collection = "test", db = "test") m$insert(data) # Complete! Processed total of 1 rows. # $nInserted # [1] 1 # # $nMatched # [1] 0 # # $nRemoved # [1] 0 # # $nUpserted # [1] 0 # # $writeErrors # list()

Y como verificación de cordura, intente insertarlo nuevamente y fallará porque ese _id ya existe

 m$insert(data) Error: insertDocument :: caused by :: 11000 E11000 duplicate key error index: test.test_id.$_id_ dup key: { : "1fgthhy2334" }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda