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

311
Visualizações
Mongodb reemplaza el punto (.) en el nombre de la clave al insertar el documento

MongoDb no admite claves con punto. Tengo un hash anidado de Ruby que tiene muchas claves con carácter de punto (.) . ¿Hay alguna configuración que se pueda usar para especificar un reemplazo de carácter para . como un guión bajo _ al insertar dichos datos en MongoDb

Estoy usando MongoDB con Ruby y mongo gem.

ejemplo hash es como a continuación

 { "key.1" => { "second.key" => { "third.key" => "val" } } }
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Si no es posible utilizar claves con . en Mongodb, tendrás que modificar los datos de entrada:

 hash = { 'key.1' => { 'second.key' => { 'third.key' => 'val.1', 'fourth.key' => ['val.1', 'val.2'] } } }

Transformar claves de cadena

Este método recursivo transforma las claves de un Hash anidado:

 def nested_gsub(object, pattern = '.', replace = '_') if object.is_a? Hash object.map do |k, v| [k.to_s.gsub(pattern, replace), nested_gsub(v, pattern, replace)] end.to_h else object end end

nested_gsub(hash) devuelve:

 { "key_1" => { "second_key" => { "third_key" => "val.1", "fourth_key" => [ "val.1", "val.2" ] } } }

Transformación de claves y valores

Es posible agregar más casos al método anterior:

 def nested_gsub(object, pattern = '.', replace = '_') case object when Hash object.map do |k, v| [k.to_s.gsub(pattern, replace), nested_gsub(v, pattern, replace)] end.to_h when Array object.map { |v| nested_gsub(v, pattern, replace) } when String object.gsub(pattern, replace) else object end end

nested_gsub ahora iterará en valores de cadena y matrices:

 { "key_1" => { "second_key" => { "third_key" => "val_1", "fourth_key" => [ "val_1", "val_2" ] } } }
over 4 years ago · Santiago Trujillo Relatório

0

En mongoDB, no hay configuración para admitir puntos en la clave. Debe preprocesar el JSON antes de insertarlo en la colección MongoDB.

Un enfoque es que puede reemplazar el punto con su equivalente Unicode U+FF0E antes de la inserción.

Espero que esto ayude.

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