sql >> データベース >  >> NoSQL >> MongoDB

MongoDBの両方のドキュメントフィールドを使用して、複数のドキュメントを1つのドキュメントにマージします

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

    @turivishalによる回答




    1. 戻り値Model.create(arr).exec()がマングースで機能していません

    2. ページネーションにMongoDBアグリゲーションを使用するにはどうすればよいですか?

    3. 本番用のMongoDBサーバーの準備

    4. タグキャッシュのようなもので、Redisを使用してそれらを提案するためにそれをクエリします