Armazenamento de uma consulta Mongoose (Node.js ORM)
Pergunta
Existe de alguma forma para fazer algo como:
var first_user = User.find({ _id: user_id }).first();
usando o mangusto Orm? http://github.com/learnboost/mongoose
O que estou tentando fazer é armazenar o resultado retornado da consulta para uso posterior.
Quando uso o acima, tudo o que volto ao var first_user
é o QueryWriter objeto.
Solução
Você pode acessar os resultados de uma consulta de Mongoose através de um retorno de chamada passada. Você descobrirá que o Mongoose, como a maioria dos módulos Node.js, faz uso extensivo de retornos de chamada assíncronos. O Mongoose também fornece um bom método para devolver um objeto por seu ID e, se você quiser usar esse resultado fora do escopo do retorno de chamada, poderá fazer assim:
var first_user;
User.findById(user_id, function(user){
first_user = user;
});
Para outras chamadas da API do Mongoose, recomendo analisar os testes de mangusto para uma boa referência. Verificação de saída http://github.com/learnboost/mongoose/blob/master/tests/integration/model.test.js