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

Преобразуване на mongo масив в обект с двойка ключ-стойност

Не сте толкова сигурни какво искате да направите с крайния резултат, тъй като ключовете и стойностите са същите. Въпреки това можете да използвате рамката за агрегиране, където можете да денормализирате масива от вградени стойности, като използвате $unwind оператор, който го изравнява, т.е. създава копие на всеки документ за запис в масив.

След като изравните масива със стойности, можете да приложите $group оператори за натрупване върху стойностите, за да ги агрегирате. Последен конвейер на $project ще оформи полетата от предишното групиране в желания формат.

Следвайте този пример, за да разберете концепцията:

templateAttributes.aggregate([
    { "$match": { "platform": "V1" } },
    { "$unwind": "$available.Community.attributes.type.values" },
    {
        "$group": {
            "_id": "$available.Community.attributes.type.values",
            "value": { "$first": "$available.Community.attributes.type.values" }
        }
    },
    {
        "$project": {
            "_id": 0,
            "label": "$_id",
            "value": 1
        }
    }
])

Тъй като използвате Meteor, meteor добавете meteorhacks:aggregate ще добави подходяща поддръжка за агрегиране за Meteor, така че да можете да изпълнявате горния конвейер за агрегиране във вашата колекция.



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

  2. Как да вмъкна двоичен файл в mongodb с помощта на javascript?

  3. Не може да се свърже с MongDB Atlas с помощта на Mongoose

  4. каква е истинската цел на $ref (DBRef) в MongoDb

  5. Mongoose findOneAndUpdate Upsert _id null?