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

mongodbにcertain(String)値を含むコレクションのすべてのキーを取得する方法

    これを行うには、objectToArrayを使用してデータソースのデータを再形成します。

    再生

    db.collection.aggregate([
      {
        "$project": {
          "data": {
            "$objectToArray": "$$ROOT"
          }
        }
      },
      {
        $unwind: "$data"
      },
      {
        "$match": {
          "data.v": {
            $regex: "hello"
          }
        }
      }
    ])
    

    別の高度なバージョンこちら データの形を変えます

    db.collection.aggregate([
      {
        "$project": {
          "data": {
            "$objectToArray": "$$ROOT"
          }
        }
      },
      {
        $unwind: "$data"
      },
      {
        "$match": {
          "data.v": {
            $regex: "hello"
          }
        }
      },
      {
        $group: {//Grouping back and restructuring the data so that objectToArray will bring the original format easily.
          "_id": "$_id",
          data: {
            "$addToSet": {
              k: "$data.k",
              v: "$data.v"
            }
          }
        }
      },
      {
        "$project": {
          "data": {
            "$arrayToObject": "$data"
          }
        }
      }
    ])
    

    arrayToObjectのドキュメントを参照してください およびobjectToArray 、次に$regex




    1. node.jsでredisにパイプラインする方法は?

    2. mongodbで削除されたスペースを自動圧縮しますか?

    3. ServiceStackRedisはデータの取得でどのように機能しますか

    4. マングースはmongodbに接続しません