Uw webpagina-id's zijn strings, terwijl de _id's waarmee u zoekt ObjectIds zijn. Uw vondst komt niet overeen met de resultaten omdat er geen documenten in de resultatentabel zijn die ObjectId-waarden hebben voor het element "webpageid".
Er zijn twee oplossingen zoals ik het zie.
- U zou ObjectIds kunnen opslaan in plaats van strings voor de
webpageid
element in deresults
verzameling. De implementatie hiervan is natuurlijk gebaseerd op hoe die documenten in de collectie komen. -
U kunt een tekenreeksvariabele maken van de geretourneerde ObjectId in de lus om in plaats daarvan te vergelijken. Bijvoorbeeld,
... 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) ...
Als je voor de tweede optie kiest, moet je misschien onderzoeken waarom er een leidende aanhalingstekens staan aan het begin van de webpageid
waarde voor het tweede document in de results
collectie.
"webpageid" : "\"54960a916ecb16dc3c4880e8"
Ten slotte weet ik niet veel over uw vereisten, maar misschien wilt u MongoDB heroverwegen als een oplossing. Het lijkt erop dat je zoiets als een JOIN aan het maken bent, iets waar MongoDB niet goed mee om kan gaan.