Ich habe es geändert, um findOne anstelle von find zu verwenden, und es funktioniert jetzt. Ich bin mir nicht sicher, warum dies einen Unterschied machen sollte. Dies ist die findOne-Funktion, die ich verwendet habe:
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();
}
});