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

143
Visualizações
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
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