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

MongoDBの2つのコレクションからのデータをマージする方法

    ここでコードをテスト

    $lookupが必要です ただし、SQLのような結合が必要な場合は、ルートドキュメントのすべてのフィールドが追加されるため、ルートの巻き戻しと置換が1つのドキュメントにマージされます。

    クエリ

    db.user_relations.aggregate([
      {
        "$match": {
          "$expr": {
            "$eq": [
              "$userId",
              "userId1"
            ]
          }
        }
      },
      {
        "$unwind": {
          "path": "$friendsArray"
        }
      },
      {
        "$sort": {
          "friendsArray.lastTimeStamp": 1
        }
      },
      {
        "$limit": 10
      },
      {
        "$replaceRoot": {
          "newRoot": "$friendsArray"
        }
      },
      {
        "$lookup": {
          "from": "users",
          "localField": "userId",
          "foreignField": "_id",
          "as": "joined__"
        }
      },
      {
        "$unwind": {
          "path": "$joined__"
        }
      },
      {
        "$replaceRoot": {
          "newRoot": {
            "$mergeObjects": [
              "$joined__",
              "$$ROOT"
            ]
          }
        }
      },
      {
        "$project": {
          "joined__": 0
        }
      }
    ])
    



    1. redisでキーを作成する時間

    2. ネストされた配列内のMongodbインクリメント値

    3. mongodbでエクスプレスとパスポートを使用したnodejsのシンプルなログインページ

    4. $ boxとmongodbを使用してドキュメントを取得し、特定の座標点を持つ各レコードの距離フィールドを追加します