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

142
Views
Comparando _ids en dos colecciones en diferentes bases de datos con 4 millones de documentos mongosh

Estoy usando getSibling para lograr esto y no estoy seguro de si esta es la única forma de intentar no usar $nin al escribir el script de shell mongodb. empiezo con esto

 //This runs for a 8-10 mins for 4Million docs db = db.getSiblingDB("a") akeys = db.getCollection("colla").aggregate([ { $group: { _id: "$_id" } } ]).toArray() akeysarray = akeys.map(item => item._id) ['abc','a','d','erdfs',.......'anvdf']

Cambio de base de datos y hago lo mismo

 db = db.getSiblingDB("b") bkeys = db.getCollection("collb").aggregate([ { $group: { _id: "$_id" } } ]).toArray() akeysarray = akeys.map(item => item._id) ['abc','a',.......'anvdf']

Luego recorro con Vanilla JavaScript porque es la única forma en que puedo lograr esto en mongosh, pero esta es mi área problemática. Necesita 5000 elementos por minuto y funcionará aproximadamente a las 16 horas durante la noche.

 difference = []; arrays = [] size = 250000 // I have to splice the list of comparing arrays by 250000 // because it is very slow while (bkeysarray.length > 0) arrays.push(bkeysarray.splice(0, size)) difference = [] for (var idxo in arrays) { for (var idx in arrays[i]) { print("checking array set" + idxo + " with index " + idx + " and value " + arrays[idxo][idx]) var value = arrays[idxo][idx]; if (value == akeysarray[idxo]) { continue; } if (akeysarray.indexOf(value) == -1) { difference.push(value); } } }

Esto devolverá 28K elementos en una matriz y quiero usar esto en una declaración $in para usar la indexación para encontrar.

Avíseme si hay otra forma de lograr una comparación de _id de base de datos cruzada que sea más eficaz que esta que solo se puede ejecutar en mongosh debido a las limitaciones del entorno con el cliente. Soy consciente de que se puede hacer con un controlador en menos de unos segundos, pero solo puedo ejecutar este script en mongosh.

about 4 years ago · Juan Pablo Isaza
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!