मैंने इसे खोजने के बजाय findOne का उपयोग करने के लिए बदल दिया और यह अब काम करता है। मुझे पूरा यकीन नहीं है कि इससे फर्क क्यों पड़ना चाहिए। यह वह खोज है जिसका मैंने उपयोग किया था:
User.findOne({'local.rooms': {$elemMatch: {name: req.body.username}}}, function (err, user) {
if (err){
return done(err);
}
if (user) {
console.log("ROOM NAME FOUND");
req.roomNameAlreadyInUse = true;
next();
} else {
req.roomNameAlreadyInUse = false;
console.log("ROOM NAME NOT FOUND");
next();
}
});