Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Map-Reduce
/ / /

Solucionar problemas de la función Map

Nota

Pipeline de agregación como alternativa a Map-Reduce

A partir de MongoDB 5.0, El map-reduce está en desuso:

Para ejemplos de alternativas de pipeline de agregación a map-reduce, consulte:

Una canalización de agregación también es más fácil de solucionar que una operación de mapa-reducción.

La map función es una función de JavaScript que asocia o “mapea” un valor con una clave y emite el par clave-valor durante una operación de mapeo-reducción.

Para verificar los pares key y value emitidos por la función map, guardar su propia función emit.

Considere una colección orders que contiene documentos del siguiente prototipo:

{
_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. Define la función map que asigna el price al cust_id para cada documento y emite el par cust_id y price:

    var map = function() {
    emit(this.cust_id, this.price);
    };
  2. Define la función emit para imprimir la clave y el valor:

    var emit = function(key, value) {
    print("emit");
    print("key: " + key + " value: " + tojson(value));
    }
  3. Invoque la función map con un solo documento de la colección orders:

    var myDoc = db.orders.findOne( { _id: ObjectId("50a8240b927d5d8b5891743c") } );
    map.apply(myDoc);
  4. Verifique que el par de clave y valor sea tal como lo esperaba.

    emit
    key: abc123 value:250
  5. Invoca la función map con varios documentos de la colección 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. Verifica que los pares de claves y valores sean como esperabas.

Tip

La map función debe cumplir varios requisitos. Para obtener una lista completa de los requisitos de la map función, consulte el mapReduce método mongosh auxiliar,db.collection.mapReduce() o.

Volver

Realizar con incrementos

En esta página