Dina webbsidor är strängar medan _id:erna som du söker med är ObjectIds. Ditt fynd matchar inga resultat eftersom det inte finns några dokument i resultattabellen som har ObjectId-värden för elementet "webpageid".
Det finns två lösningar som jag ser det.
- Du kan lagra ObjectIds istället för strängar för
webpageid
element iresults
samling. Implementeringen av detta är naturligtvis baserat på hur dessa dokument kommer in i samlingen. -
Du kan skapa en strängvariabel från det returnerade ObjectId inom loopen för att jämföra istället. Till exempel,
... 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) ...
Om du väljer det andra alternativet kan du behöva undersöka varför det finns ett ledande citat i början av webpageid
värde för det andra dokumentet i results
samling.
"webpageid" : "\"54960a916ecb16dc3c4880e8"
Slutligen vet jag inte mycket om dina krav, men du kanske vill tänka om MongoDB som en lösning. Det verkar som att du skapar något som en JOIN vilket är något som MongoDB inte är designat för att hantera särskilt bra.