Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

310
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!