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

scalić wiele dokumentów w jeden dokument z obydwoma polami dokumentów w MongoDB

db.collection.aggregate([
  {
    $match: {
      Deal: {
        $exists: true
      }
    }
  },
  {
    $lookup: {
      from: "collection",
      let: {
        name: "$Deal.name"
      },
      pipeline: [
        {
          $match: {
            data: {
              $exists: true
            }
          }
        },
        {
          $project: {
            data: {
              $reduce: {
                input: {
                  $objectToArray: "$data.Inside_data.project"
                },
                initialValue: {},
                in: {
                  $cond: [
                    {
                      $eq: [
                        "$$this.k",
                        "$$name"
                      ]
                    },
                    "$$this.v",
                    "$$value"
                  ]
                }
              }
            }
          }
        },
        {
          $project: {
            _id: 0,
            alpha: "$data.alpha",
            beta: "$data.beta"
          }
        }
      ],
      as: "Deal.data"
    }
  },
  {
    $unwind: "$Deal.data"
  }
])

Odpowiedz @turivishal




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Zbudować ten LEFT() SQL w zapytaniu MongoDB?

  2. 3 sposoby na wybranie wiersza z maksymalną wartością w SQL

  3. MongoDB w 2018 r. - rok podsumowany

  4. mangusta wymusza unikalny atrybut na właściwości dokumentu podrzędnego

  5. Google Cloud Platform – nie można połączyć się z mongodb