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

Mongodbの場合、フィルターの下で条件を作成する方法

    チャットで話し合った後、全体的な問題は、関連する歴史文書の2つの基準に基づいてメインコレクションから文書を選択する方法であったようです。

    db.main.aggregate([
      {$lookup: {
          from: "history",
          localField: "history_id",
          foreignField: "history_id",
          as: "History"
      }},
      {$match: {
          $expr: {
            $eq: [
              false,
              {$reduce: {
                  input: "$History",
                  initialValue: false,
                  in: {
                    $or: [
                      "$$value",
                      {$and: [
                          {$eq: [
                              "$$this.user_id",
                              ObjectId("5e4a8d2d3952132a08ae5764")
                          ]},
                          {$gte: [
                              "$$this.date",
                              "$date"
                          ]}
                      ]}
                    ]
                  }
              }}
            ]
          }
      }}
    ])
    

    遊び場




    1. クラウドでのMongoDBの自動化と管理

    2. jestの実行中に複数のサーバーインスタンスが試行される

    3. Mongodbで複数の値の個別の値を取得する

    4. .NETドライバー2.0を使用してMongoDBでインデックスを構築する