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

281
Visualizações
Se puede acceder a la colección Mongo a través de mongosh (mongo shell) pero no del script nodejs

Ejecutando el proceso mongod en segundo plano, en el shell mongo (mongosh), tengo la base de datos de wikipedia cargada en mi base de datos "enwiki". Entonces, en el shell, puedo escribir db.pages.find() y me mostrará algunas páginas de Wikipedia. De manera similar, si llamo a db.getCollectionNames() , devuelve ['pages']. db.getCollection("pages").find() también funciona.

Sin embargo, si voy a mi script nodejs, db.collection("pages").find() no contiene nada.

 const MongoClient = require("mongodb").MongoClient; const url = 'mongodb://localhost:27017/'; const dbName = 'enwiki'; const client = new MongoClient(url, { useUnifiedTopology: true }); client.connect().then(client => { console.log('Connected successfully to server'); const db = client.db(dbName); const cursor = db.collection("pages").find(); cursor.forEach(doc => { console.log(doc.plaintext);}); });

Ejecutar el código anterior simplemente imprime 'Conectado correctamente al servidor' y se detiene. (También debería imprimir el texto sin formato de todos mis artículos de Wikipedia en mi base de datos).

Soy nuevo en mongo, así que siento que me estoy perdiendo algo obvio. La base de datos se creó originalmente usando dumpster-dive . Llamar db.listCollections() devuelve esto en el depurador de nodos:

 { _events: Object, _eventsCount: 0, _maxListeners: 'undefined', parent: Db, filter: Object, ... }

Ese objeto no contiene la colección de páginas que espero. ¿Cómo accedo a la colección de páginas?

EDITAR 18/01/22 (día siguiente): lo ejecuté hoy, no en el depurador, y simplemente funcionó. Por alguna razón, ejecutar db.collection("pages").find() y db.collection("pages").find().limit(1) en el depurador de nodos devuelve un objeto extraño similar al anterior. Por otro lado, ejecutando cursor.forEach(doc => { console.log(doc.plaintext);}); en el depurador de nodos simplemente devuelve:

 { [[PromiseState]]: 'pending', [[PromiseResult]]: 'undefined' }

Y termina sin hacer nada más, así que pensé que no estaba haciendo nada. En mi código no completamente reducido que se muestra aquí, también tenía un par de errores tipográficos dentro de la promesa forEach cuyos errores se suprimían.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

El código anterior funciona y simplemente no parecía funcionar. En mi caso, creo que fue una combinación de supresión de errores que no estaba viendo y este extraño comportamiento del depurador de nodos que me hizo creer que no estaba funcionando. Me encantaría una explicación de por qué ocurre este comportamiento del depurador y cómo evitarlo/solucionarlo.

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