Latest web development tutorials

MongoDB polimerizzazione

MongoDB polimerizzato (aggregato) principalmente per l'elaborazione dei dati (come medie statistiche, somme, ecc), e restituisce il risultato dei dati calcolati. In qualche modo simile conteggio istruzione SQL (*).


il metodo di aggregazione ()

Metodo di polimerizzazione MongoDB usa aggregata ().

grammatica

La sintassi del metodo aggregato di base () è il seguente:

>db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

Esempi

La raccolta dei dati è il seguente:

{
   _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
},

Ora abbiamo impostato il sopra è calcolato per ciascuna delle numero di articoli scritti da autori che utilizzano aggregati () calcolato come segue:

> 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
}
>

Esempi simili di cui sopra istruzione SQL: select by_user, COUNT (*) dal gruppo mycol da by_user

Nell'esempio precedente, abbiamo by_user campo per campo raggruppare i dati e calcola la somma dello stesso valore by_user campo.

La tabella seguente mostra qualche espressione di aggregazione:

espressione descrizione Esempi
$ Sum Calcolare la somma. db.mycol.aggregate ([{$ gruppo: {_id: "$ by_user", num_tutorial: {$ Somma: "$ piace"}}}])
$ Avg Il calcolo della media db.mycol.aggregate ([{$ gruppo: {_id: "$ by_user", num_tutorial: {$ avg: "$ piace"}}}])
$ Min Ottiene una raccolta di tutti i documenti corrispondono minimo valore. db.mycol.aggregate ([{$ gruppo: {_id: "$ by_user", num_tutorial: {$ min: "$ piace"}}}])
$ Max Ottiene una raccolta di tutti i documenti relativi alla pena massima. db.mycol.aggregate ([{$ gruppo: {_id: "$ by_user", num_tutorial: {$ max: "$ piace"}}}])
$ push Nel documento risultante per inserire un valore in una matrice. db.mycol.aggregate ([{$ gruppo: {_id: "$ by_user", URL: {$ spinta: "$ url"}}}])
$ AddToSet Nel documento risultante per inserire un valore in un array, ma non crea una copia. db.mycol.aggregate ([{$ gruppo: {_id: "$ by_user", URL: {$ addToSet: "$ url"}}}])
$ Prima Essendo i dati primo documento in base ai documenti di risorse sorta. db.mycol.aggregate ([{$ gruppo: {_id: "$ by_user", first_url: {$ prima: "$ url"}}}])
$ Ultimo Ottiene i dati ultimo documento in base ai documenti di risorse sorta db.mycol.aggregate ([{$ gruppo: {_id: "$ by_user", last_url: {$ ultima: "$ url"}}}])

Il concetto di conduttura

Tubi in Unix e Linux in generale è utilizzata per inviare il comando corrente come parametro per il comando successivo.

MongoDB MongoDB pipe documento polimerico nel tubo dopo un risultato elaborato al successivo trattamento pipeline. operazione Pipeline può essere ripetuta.

Espressione: ingresso di elaborazione e di uscita documenti. Le espressioni sono apolidi, possono essere utilizzati solo per calcolare la pipeline corrente dei documenti aggregati, non si può fare con altri documenti.

Qui vi presentiamo il quadro di aggregazione comunemente usato in diverse operazioni:

  • $ Progetto: Modificare la struttura del documento di input. Può essere usato per rinominare, aggiungere o rimuovere campi, può anche essere usato per creare calcoli nidificati e documentazione.
  • $ Partita: utilizzato per filtrare i dati, solo l'uscita di documenti qualificati. $ Corrispondenza con operatori di query standard di MongoDB.
  • $ Limit: per limitare il numero di documenti MongoDB polimerizzazione gasdotto restituito.
  • $ Skip: Salta il numero specificato di documenti in cantiere polimerizzazione, e restituisce il resto del documento.
  • $ Rilassatevi: un documento è suddiviso in una matrice di tipo di campo in più, ogni matrice che contiene un valore.
  • $ Gruppo: la raccolta di documenti di raggruppamento può essere utilizzato per risultati statistici.
  • $ Sort: l'uscita documento di input dopo l'ordinazione.
  • $ GeoNear: ordinato produzione dei documenti nei pressi di una posizione geografica.

Esempi di operatore pipeline

1, $ esempi di progetti

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

In questo caso i risultati sarebbero solo lì _id, tilte e autore di tre campi, campo di default _id è da inserire, se l'ordine non contiene _ID se può essere:

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

2. $ partita esempi

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

$ Match viene utilizzato per ottenere un punteggio superiore a 70 è inferiore o uguale a 90 record, quindi i record corrispondenti alla fase successiva del $ gruppo operatore pipeline per l'elaborazione.

3. $ saltare esempio

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

Dopo un salto $ operatore pipeline processing, i primi cinque documenti sono "filtrati" fuori.