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

サブ配列の別のコレクションにあるプロパティを呼び出すにはどうすればよいですか?

    多くの方法がありますが、1つの方法は$lookupを使用することです。 すでに試したように

    db.place.aggregate([
      { "$match": { "place": "Room 5" } },
      { $unwind: "$type_place_objects"  },
      {
        "$lookup": {
          "from": "type_place",
          "let": { tpo: "$type_place_objects._id" },
          "pipeline": [
            { $unwind: "$objects" },
            {
              $match: {
                $expr: {
                  $eq: [ "$objects._id", "$$tpo" ]
                }
              }
            }
          ],
          "as": "join"
        }
      },
      {
        $addFields: {
          "join": { "$arrayElemAt": [ "$join", 0]
          }
        }
      },
      {
        $addFields: { "type_place_objects.name": "$join.objects.name" }
      },
      {
        $group: {
          _id: "$_id",
          place: { $first: "$place" },
          type_place_objects: { "$addToSet": "$type_place_objects" }
        }
      }
    ])
    

    作業中Mongo遊び場




    1. expressjs、mongodbサイトの画像を保存するための最良の方法はどれですか?

    2. コレクション内の複数のフィールドをマージするにはどうすればよいですか?

    3. Mongodb: `com.mongodb.MongoSocketReadException:モルヒネでストリームの終わりに時期尚早に到達しました`

    4. (sails js)waterlineを介してmongodbデータベースの配列に値をプッシュします