sql >> Databáze >  >> NoSQL >> MongoDB

Převod pole mongo na objekt s párem klíč-hodnota

Nejste si jisti, co chcete s konečným výsledkem dělat, protože klíče a hodnoty jsou stejné. Nicméně můžete použít agregační rámec, kde můžete denormalizovat pole vložených hodnot pomocí $unwind operátor, který jej sloučí, tj. vytvoří kopii každého dokumentu na položku pole.

Po zploštění pole hodnot můžete použít $group akumulační operátory na hodnotách, aby je agregovali. Poslední kanál $project operátor by tvaroval pole z předchozího seskupení do požadovaného formátu.

Chcete-li získat koncept, postupujte podle tohoto příkladu:

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

Protože používáte Meteor, přidejte meteor meteorhacks:aggregate přidá správnou podporu agregace pro Meteor, abyste mohli na své sbírce spustit výše uvedený agregační kanál.



  1. Predis dává 'Chyba při čtení řádku ze serveru'

  2. Proč se data ukládají pomocí podivných klíčů v Redis při použití Jedis s Spring Data?

  3. Vrátí skutečný typ pole v MongoDB

  4. počkejte, až všechny sliby skončí v nodejs s bluebird