Вашите уебстраници са низове, докато _идентификаторите, с които търсите, са ObjectIds. Вашата находка не съответства на нито един резултат, защото в таблицата с резултати няма документи, които имат стойности на ObjectId за елемента "webpageid".
Според мен има две решения.
- Можете да съхранявате ObjectIds вместо низове за
webpageid
елемент вresults
колекция. Изпълнението на това, разбира се, се основава на това как тези документи попадат в колекцията. -
Можете да създадете низова променлива от върнатия ObjectId в рамките на цикъла, за да сравните вместо това. Например,
... 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) ...
Ако изберете втората опция, може да се наложи да разгледате защо има водещ цитат в началото на webpageid
стойност за втория документ в results
колекция.
"webpageid" : "\"54960a916ecb16dc3c4880e8"
И накрая, не знам много за вашите изисквания, но може да искате да преосмислите MongoDB като решение. Изглежда, че създавате нещо като JOIN, което е нещо, което MongoDB не е предназначено да обработва много добре.