I tuoi webpageid sono stringhe mentre gli _id con cui stai cercando sono ObjectIds. La tua ricerca non corrisponde ad alcun risultato perché non ci sono documenti nella tabella dei risultati che hanno valori ObjectId per l'elemento "webpageid".
Ci sono due soluzioni per come la vedo io.
- Potresti memorizzare ObjectId invece di stringhe per
webpageid
elemento neiresults
collezione. L'implementazione di questo si basa ovviamente su come quei documenti entrano nella collezione. -
È possibile creare una variabile stringa da ObjectId all'interno del ciclo per confrontare invece. Ad esempio,
... for(var i = 0; i < docs.length; i++) { var docId = docs[i]._id.toString(); // create a string db.get('results').findOne({'webpageid':docId}, function(err, doc) ...
Se scegli la seconda opzione, potresti dover esaminare il motivo per cui c'è una citazione iniziale all'inizio di webpageid
valore per il secondo documento nei results
raccolta.
"webpageid" : "\"54960a916ecb16dc3c4880e8"
Infine, non so molto delle tue esigenze, ma potresti voler ripensare a MongoDB come una soluzione. Sembra che tu stia creando qualcosa come un JOIN che è qualcosa che MongoDB non è progettato per gestire molto bene.