Latest web development tutorials

polimerización MongoDB

MongoDB polimerizado (agregado) principalmente para el procesamiento de los datos (como los promedios estadísticos, sumas, etc.), y devuelve el resultado de los datos calculados. recuento de instrucción SQL algo similar (*).


Método agregada ()

método de polimerización MongoDB utiliza agregada ().

gramática

El método global básico sintaxis () es la siguiente:

>db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

Ejemplos

La recogida de datos es el siguiente:

{
   _id: ObjectId(7df78ad8902c)
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by_user: 'w3cschool.cc',
   url: 'http://www.w3cschool.cc',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 100
},
{
   _id: ObjectId(7df78ad8902d)
   title: 'NoSQL Overview', 
   description: 'No sql database is very fast',
   by_user: 'w3cschool.cc',
   url: 'http://www.w3cschool.cc',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 10
},
{
   _id: ObjectId(7df78ad8902e)
   title: 'Neo4j Overview', 
   description: 'Neo4j is no sql database',
   by_user: 'Neo4j',
   url: 'http://www.neo4j.com',
   tags: ['neo4j', 'database', 'NoSQL'],
   likes: 750
},

Ahora nos fijamos el anterior se calcula para cada una de la serie de artículos escritos por autores que utilizan agregada (), calculado de la siguiente manera:

> db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])
{
   "result" : [
      {
         "_id" : "w3cschool.cc",
         "num_tutorial" : 2
      },
      {
         "_id" : "Neo4j",
         "num_tutorial" : 1
      }
   ],
   "ok" : 1
}
>

Ejemplos similares anteriores instrucción SQL: select by_user, count (*) del grupo mycol por by_user

En el ejemplo anterior, hemos by_user campo por campo para agrupar los datos y calcula la suma del mismo valor by_user campo.

La siguiente tabla muestra alguna expresión de agregación:

expresión descripción Ejemplos
$ Sum Calcular la suma. db.mycol.aggregate ([{$ grupo: {_id: "$ by_user", num_tutorial: {$ suma: "$ gusta"}}}])
$ Promedio El cálculo de la media db.mycol.aggregate ([{$ grupo: {_id: "$ by_user", num_tutorial: {$ avg: "$ gusta"}}}])
$ Min Obtiene una colección de todos los documentos corresponden pena mínima. db.mycol.aggregate ([{$ grupo: {_id: "$ by_user", num_tutorial: {$ min: "$ gusta"}}}])
$ Max Obtiene una colección de todos los documentos correspondientes a la pena máxima. db.mycol.aggregate ([{$ grupo: {_id: "$ by_user", num_tutorial: {$ max: "$ gusta"}}}])
$ Empuje En el documento resultante de insertar un valor en una matriz. db.mycol.aggregate ([{$ grupo: {_id: "$ by_user", url: {$ empujón: "$ url"}}}])
$ AddToSet En el documento resultante de insertar un valor en una matriz, pero no crea una copia. db.mycol.aggregate ([{$ grupo: {_id: "$ by_user", url: {$ addToSet: "$ url"}}}])
En primer lugar $ Siendo los primeros datos de documentos de acuerdo con los documentos de recursos especie. db.mycol.aggregate ([{$ grupo: {_id: "$ by_user", first_url: {$ primero: "$ url"}}}])
$ Último Obtiene los datos del último documento de acuerdo con los documentos de recursos especie db.mycol.aggregate ([{$ grupo: {_id: "$ by_user", last_url: {$ última: "$ url"}}}])

El concepto de la tubería

Tubos en Unix y Linux en general que se utiliza para emitir el comando actual como un parámetro para el siguiente comando.

tubería documento polimérico MongoDB MongoDB en la tubería después de un resultado procesado al siguiente procesamiento en paralelo. construcción de este gasoducto se puede repetir.

Expresión: el procesamiento de entrada y salida de documentos. Las expresiones son sin estado, sólo se pueden utilizar para el cálculo de la tubería actual de los documentos agregados, no se puede tratar con otros documentos.

Aquí presentamos el marco de agregación utilizado comúnmente en varias operaciones:

  • $ Proyecto: Modificar la estructura del documento de entrada. Se puede utilizar para cambiar el nombre, añadir o eliminar campos, sino que también puede ser usado para crear cálculos anidados y documentación.
  • $ Partido: se usa para filtrar los datos, sólo la salida de los documentos calificados. $ Partido usando MongoDB operadores de consulta estándar.
  • $ Límite: limitar el número de documentos de tuberías de polimerización MongoDB regresó.
  • $ Saltar: Saltar el número especificado de documentos en la tubería de polimerización, y devuelve el resto del documento.
  • $ Relájese: un documento se divide en una serie de campo de tipo en múltiples, cada una matriz que contiene un valor.
  • $ Grupo: la colección de documentos de agrupación puede ser utilizado para resultados estadísticos.
  • $ Ordenar: la salida de documentos de entrada después de haberlo pedido.
  • $ GeoNear: Ordenado de salida de documentos cerca de una ubicación geográfica.

Ejemplos del operador de canalización

1, ejemplos de proyectos $

db.article.aggregate(
    { $project : {
        title : 1 ,
        author : 1 ,
    }}
 );

En este caso los resultados serían solamente allí _id, Tilte y autor de tres campos, el campo _id defecto es que se incluirán, si la orden no contiene _ID si puede ser:

db.article.aggregate(
    { $project : {
        _id : 0 ,
        title : 1 ,
        author : 1
    }});

2. Ejemplos de concordancia $

db.articles.aggregate( [
                        { $match : { score : { $gt : 70, $lte : 90 } } },
                        { $group: { _id: null, count: { $sum: 1 } } }
                       ] );

$ De ajuste se utiliza para obtener una puntuación superior a 70 es inferior o igual a 90 registros, los registros que coinciden a la siguiente etapa del grupo $ operador de canalización para su procesamiento.

3. $ saltarse instancia

db.article.aggregate(
    { $skip : 5 });

Después de un salto de $ operador de canalización de procesamiento, los cinco primeros documentos se "filtran" hacia fuera.