Tus webpageids son cadenas mientras que los _ids con los que estás buscando son ObjectIds. Su búsqueda no coincide con ningún resultado porque no hay documentos en la tabla de resultados que tengan valores de ObjectId para el elemento "webpageid".
Hay dos soluciones como yo lo veo.
- Podría almacenar ObjectIds en lugar de cadenas para el
webpageid
elemento en losresults
recopilación. La implementación de esto, por supuesto, se basa en cómo esos documentos ingresan a la colección. -
Puede crear una variable de cadena a partir del ObjectId dentro del bucle para comparar en su lugar. Por ejemplo,
... 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) ...
Si elige la segunda opción, es posible que deba investigar por qué hay una cita principal al comienzo de webpageid
valor para el segundo documento en los results
colección.
"webpageid" : "\"54960a916ecb16dc3c4880e8"
Por último, no sé mucho acerca de sus requisitos, pero es posible que desee repensar MongoDB como una solución. Parece que está creando algo como JOIN, algo que MongoDB no está diseñado para manejar muy bien.