Latest web development tutorials

polimeryzacji MongoDB

MongoDB polimeryzowany (kruszywo), głównie za przetwarzanie danych (takich jak średnimi statystycznymi, sum, itp) i zwraca wynik obliczonych danych. Nieco podobna liczba instrukcji SQL (*).


Metoda łączna ()

Sposób polimeryzacji MongoDB wykorzystuje agregat ().

gramatyka

Podstawowa metoda łączna składni () jest następujący:

>db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

Przykłady

Gromadzenie danych jest następujący:

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

Teraz ustawiony powyżej jest obliczany dla każdej liczby artykułów napisany przez autorów za pomocą agregatu () oblicza się następująco:

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

Podobne przykłady Powyższe oświadczenie SQL: select by_user, count (*) z grupy Mycol przez by_user

W powyższym przykładzie, by_user pole po polu do grupowania danych i oblicza sumę samej wartości by_user dziedzinie.

Poniższa tabela przedstawia niektóre wyrażenia agregacji:

wyrażenie opis Przykłady
$ Sum Oblicz sumę. db.mycol.aggregate ([{$ Grupa: {_id: "$ by_user" num_tutorial: {$ suma: "$ lubi"}}}])
$ Średnia Obliczaniu średniej db.mycol.aggregate ([{$ Grupa: {_id: "$ by_user" num_tutorial: {$ avg: "$ lubi"}}}])
$ Min Pobiera zbiór wszystkich dokumentów odpowiadają wartości minimum. db.mycol.aggregate ([{$ Grupa: {_id: "$ by_user" num_tutorial: {$ min: "$ lubi"}}}])
$ Max Pobiera kolekcja wszystkich dokumentów odpowiadających maksymalnej wartości. db.mycol.aggregate ([{$ Grupa: {_id: "$ by_user" num_tutorial: {$ max: "$ lubi"}}}])
$ push W wynikowym dokumencie wstawić wartość do tablicy. db.mycol.aggregate ([{$ Grupa: {_id: "$ by_user", url: {$ Push: "$ url"}}}])
$ AddToSet W wynikowym dokumencie wstawić wartości do tablicy, ale nie tworzy kopii. db.mycol.aggregate ([{$ Grupa: {_id: "$ by_user", url: {$ addToSet: "$ url"}}}])
$ Pierwszy Jako pierwszy dane dokumentu zgodnie z dokumentami zasobów sortowania. db.mycol.aggregate ([{$ Grupa: {_id: "$ by_user" first_url: {$ pierwsza: "$ url"}}}])
$ Ostatni Pobiera ostatnich danych dokumentu zgodnie z dokumentami zasobów sortowania db.mycol.aggregate ([{$ Grupa: {_id: "$ by_user" last_url: {$ ostatnia: "$ url"}}}])

Koncepcja rurociągu

Rury w Unix i Linux w ogóle służy do wyjścia bieżącego polecenia jako parametr do następnego polecenia.

MongoDB MongoDB rury polimerowe dokument w rurze po przetworzonego rezultacie do następnego przetwarzania potokowego. eksploatacji rurociągu można powtórzyć.

Wyrażenie: wejściowe i wyjściowe przetwarzania dokumentów. Wyrażenia są bezpaństwowcem, może być używany tylko w celu obliczenia bieżącej rurociąg dokumentów zbiorczych, nie może uporać się z innymi dokumentami.

Poniżej przedstawiamy ramy agregacji powszechnie używany w kilku operacjach:

  • $ Projekt: Modyfikacja struktury dokumentu wejściowego. Może być używany do zmiany nazwy, dodawać lub usuwać pola, może być również wykorzystywane do tworzenia zagnieżdżonych obliczeń i dokumentacji.
  • $ Mecz: używany do filtrowania danych, tylko wyjście wykwalifikowanych dokumentów. $ Mecz użyciu MongoDB operatorów standardowe zapytania.
  • $ Limit: ograniczyć liczbę dokumentów MongoDB polimeryzacji rurociągu zwrócony.
  • $ Skip: Przejdź określoną liczbę dokumentów w rurociągu polimeryzacji i zwraca resztę dokumentu.
  • $ Zrelaksować: dokument jest podzielony w tablicy typu pola do wielokrotnego każda tablica zawierająca wartości.
  • $ Grupami: zbiór dokumentów grupujące mogą być stosowane do wyników statystycznych.
  • $ Sortowanie: wyjście dokument wejście po zamówieniu.
  • $ GeoNear: Zamówione wyjście dokument zbliżony do lokalizacji geograficznej.

Przykłady operatora rurociągu

1, $ przykłady projektów

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

W tym przypadku wyniki byłyby tylko tam _id, tilte i autor trzech pól, terenowych domyślny _id ma być włączone, jeśli zamówienie nie zawiera _id, czy może to być:

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

2. $ przykłady mecz

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

$ Dopasowania jest używany do uzyskania wynik przekracza 70 jest mniejsza niż lub równa 90 płyt, a następnie rejestrów dopasowania do następnego etapu operatora rurociągu $ grupy do przetwarzania.

3. $ pominąć instancji

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

Po operatora rurociągu przetwarzania $ pomijaniem, pierwsze pięć dokumenty są "filtrowane" na zewnątrz.