Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ /

Solucionar problemas da função de mapa

Nesta página

  • Verificar pares de chave e valor

Observação

Pipeline de Agregação como Alternativa à Redução de Mapa

A partir do MongoDB , 5.0, map-reduce está obsoleto:

Para obter exemplos de alternativas de aggregation pipeline para map-reduce, consulte:

Um aggregation pipeline também é mais fácil de solucionar problemas do que uma operação de map-reduce.

A função map é uma função JavaScript que associa ou "mapeia" um valor com uma chave e emite o par de chave e valor durante uma operação map-reduce .

Para verificar os pares key e value emitidos pela função map , escreva sua própria função emit .

Considere uma collection orders que contenha documentos do seguinte protótipo:

{
_id: ObjectId("50a8240b927d5d8b5891743c"),
cust_id: "abc123",
ord_date: new Date("Oct 04, 2012"),
status: 'A',
price: 250,
items: [ { sku: "mmm", qty: 5, price: 2.5 },
{ sku: "nnn", qty: 5, price: 2.5 } ]
}
  1. Defina a função map que mapeia o price para o cust_id para cada documento e emite o par cust_id e price :

    var map = function() {
    emit(this.cust_id, this.price);
    };
  2. Defina a função emit para imprimir a chave e o valor:

    var emit = function(key, value) {
    print("emit");
    print("key: " + key + " value: " + tojson(value));
    }
  3. Invoque a função map com um único documento da collection orders :

    var myDoc = db.orders.findOne( { _id: ObjectId("50a8240b927d5d8b5891743c") } );
    map.apply(myDoc);
  4. Verifique se o par de chaves e valores é como o esperado.

    emit
    key: abc123 value:250
  5. Invocar a função map com vários documento da collection orders :

    var myCursor = db.orders.find( { cust_id: "abc123" } );
    while (myCursor.hasNext()) {
    var doc = myCursor.next();
    print ("document _id= " + tojson(doc._id));
    map.apply(doc);
    print();
    }
  6. Verifique se os pares de chave e valor são conforme o esperado.

Dica

Veja também:

A função map deve atender a vários requisitos. Para obter uma lista de todos os requisitos para a função map , consulte mapReduce ou mongosh método auxiliar db.collection.mapReduce().

Voltar

Desempenho com incrementos