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

Jak pobrać wszystkie pasujące elementy obecne w tablicy w Mongo DB?

Jak powiedział JohnnyHK, odpowiedź w MongoDB:wybierz dopasowane elementy podkolekcja wyjaśnia to dobrze.

W Twoim przypadku agregat wyglądałby tak:

(uwaga:pierwsze dopasowanie nie jest bezwzględnie konieczne, ale pomaga pod względem wydajności (może używać indeksu) i zużycia pamięci ($rozwijanie w ograniczonym zestawie)

> db.xx.aggregate([
...      // find the relevant documents in the collection
...      // uses index, if defined on documents.x
...      { $match: { documents: { $elemMatch: { "x": 1 } } } }, 
...      // flatten array documennts
...      { $unwind : "$documents" },
...      // match for elements, "documents" is no longer an array
...      { $match: { "documents.x" : 1 } },
...      // re-create documents array
...      { $group : { _id : "$_id", documents : { $addToSet : "$documents" } }}
... ]);
{
    "result" : [
        {
            "_id" : ObjectId("515e2e6657a0887a97cc8d1a"),
            "documents" : [
                {
                    "x" : 1,
                    "y" : 3
                },
                {
                    "x" : 1,
                    "y" : 2
                }
            ]
        }
    ],
    "ok" : 1
}

Aby uzyskać więcej informacji o agregacji(), zobacz http://docs.mongodb.org/manual /aplikacje/agregacja/




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Pobierz ostatni wstawiony element z mongodb w GoLang

  2. Suma poddokumentów w Mongoose

  3. Pobierz konkretny element z tablicy mongoDB

  4. zaktualizuj określony element z zagnieżdżonej tablicy dokumentów mongodb, gdzie ma dwa dopasowania

  5. Zapytanie agregujące mongodb nie zwraca prawidłowej sumy przy użyciu $sum