MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Възможно ли е изравняване на заявката за резултат на MongoDB?

Можете да използвате $project &$unwind &$group на обединяване рамка, за да се доближи резултатът до вашите изисквания.

> db.countries.aggregate({$project:{a:'$data.country.neighbor.name'}},
                         {$unwind:'$a'},
                         {$unwind:'$a'},
                         {$group:{_id:'a',res:{$addToSet:'$a'}}})
  {
    "result" : [
        {
            "_id" : "a",
            "res" : [
                "Colombia",
                "Malaysia",
                "Switzerland",
                "Costa Rica",
                "Austria"
            ]
        }
    ],
    "ok" : 1
}

$unwind използвани два пъти, тъй като масивът от имена е вложен дълбоко. И ще работи само ако neighbor атрибут е масив. Във вашия пример едно съседно поле (Малайзия) не е масив



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb лимит във вградения документ

  2. Клас „MongoClient“ не е намерен

  3. Как Trello се справя с пренареждането на карти, списъци, контролни списъци и т.н

  4. Mongoose upsert дублиращ се ключ грешка

  5. MongoDB:Неправилно формирана гео заявка с $geoIntersect върху многоъгълник