ES 6 (Nó 8+)
Você pode utilizar async/await
await
O operador pausa a execução da função assíncrona até que a promessa seja resolvida e retorne o valor. Desta forma seu código funcionará de forma síncrona:
const query = MySchema.findOne({ name: /tester/gi });
const userData = await query.exec();
console.log(userData)
Solução mais antiga - junho de 2013;)
Agora que o Mongo Sync está disponível, esta é a maneira correta de fazer uma consulta síncrona do MongoDB no Node.js.
Estou usando isso para o mesmo. Você pode simplesmente escrever o método de sincronização como abaixo:
var Server = require("mongo-sync").Server;
var server = new Server('127.0.0.1');
var result = server.db("testdb").getCollection("testCollection").find().toArray();
console.log(result);
Nota:Depende da fibra do nó e alguns problemas existem com ela no Windows 8.
Boa codificação :)