MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB — filtrowanie zawartości wewnętrznej tablicy w zestawie wyników

Możesz użyć frameworka agregacji MongoDB .

Jeśli masz w swojej kolekcji dokument, taki jak;

{
 "URL": "www.stackoverflow.com",
 "TAGS": [
         {"NAME": "question", "VOTES": 3},
         {"NAME": "answer", "VOTES": 5},
         {"NAME": "problem", "VOTES": 2}
         ]
}

i chcesz odfiltrować niektóre elementy tablicy, możesz użyć próbki agregacji;

db.sof_table.aggregate
([
{$unwind:'$TAGS'}, 
{$match:{'TAGS.NAME':{$in:['answer','question']}}},
{$group:{_id:'$URL',TAGS:{$push:'$TAGS'}}}
])

Spowoduje to;

{
    "result" : [
        {
            "_id" : "www.stackoverflow.com",
            "TAGS" : [
                {
                    "NAME" : "question",
                    "VOTES" : 3
                },
                {
                    "NAME" : "answer",
                    "VOTES" : 5
                }
            ]
        }
    ],
    "ok" : 1
}

jako oczekiwany wynik.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wypełnij model mangusty polem, które nie jest identyfikatorem

  2. Jak zoptymalizować wydajność MongoDB

  3. mongodb Failed:błąd łączenia z serwerem db:brak osiągalnych serwerów

  4. Jak zastosować ograniczenia w MongoDB?

  5. Jak logować zapytania wykonywane przez Spring Data MongoDB?