cursor.map(function)Importante
Método mongosh
Este é um método
mongosh. Esta não é a documentação deNode.jsou de outros métodos de driver específicos da linguagem de programação.Na maioria dos casos, os métodos
mongoshfuncionam da mesma forma que os métodos legado do shellmongo. No entanto, alguns métodos legado não estão disponíveis emmongosh.Para a documentação do shell legado
mongo, consulte a documentação para a release correspondente do MongoDB Server:Para drivers da API do MongoDB, consulte a documentação do driver do MongoDB específica do idioma.
Aplica um
functiona cada documento visitado pelo cursor e coleta os valores de retorno de aplicativos sucessivos dofunctionem um objetoCursor.O método
cursor.map()tem o seguinte parâmetro:ParâmetroTipoDescriçãofunctionfunction
Uma função a ser aplicada a cada documento visitado pelo cursor.
Compatibilidade
Esse método está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Observação
Este comando é aceito em todos os clusters do MongoDB Atlas. Para obter informações sobre o suporte do Atlas a todos os comandos, consulte Comandos não suportados.
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Comportamento
cursor.map() retorna um objeto Cursor . Note que .map() só converte o tipo, não cria um novo cursor. Você pode converter o objeto Cursor para Array com .toArray().
Exemplos
Estes exemplos referem-se à coleção de produtos:
db.products.insertMany([ { _id: 1, name: 'widget', price: 10.89 }, { _id: 2, name: 'thing', price: 11.24 }, { _id: 3, name: 'moppet', price: 8 }, { _id: 4, name: 'cosa', price: 24.19 } ])
Retornar um valor de uma collection
Obtenha os nomes dos produtos.
db.products.find().map( function(p) { return p.name; } ) ;
Retornar resultados como um Array
Calcule um preço promocional com desconto e retorne os resultados como uma array.
var salePrices = db.products.find().map( function(p) { return p.price * .9 } ).toArray() ;
Confirme que a saída é um Array
salePrices.constructor.name
Dica
cursor.forEach() para uma funcionalidade semelhante.