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

Mongoは、親キーが不明な値を検索します

    現在のスキーマでこれをエレガントに解決できるかどうかはわかりません。 slotTypes $elemMatchを許可するサブドキュメントの配列である必要があります 動作するクエリ。今のところ、それは数字っぽいキーを持つオブジェクトです。

    つまり、ドキュメントスキーマは次のようになります。

    {
       "assetsId": {
         "0": "546cf2f8585ffa451bb68369"
      },
       "slotTypes": [
         { "usage": "json" },
         { "usage": "image" }
      ]
    }
    

    データレイアウトを変更することができない場合は、基本的にすべてのドキュメントをスキャンして、$whereと一致するものを見つける必要があります。 。これは遅く、インデックスに登録できず、扱いにくいです。

    db.objects.find({$where: function() {
      for(var key in this.slotTypes) {
        if (this.slotTypes[key].usage == "json") return true;
      }
      return false;
    }})
    

    $whereのドキュメント をお読みください。 その警告を確実に理解し、聖なるものすべてを愛するために、関数への入力をサニタイズします。これは、データベースのコンテキストで実行されているライブコードです。




    1. 存在する場合は多数を更新し、存在しない場合は、存在しないLeadIdごとに新しいドキュメントを作成します

    2. アグリゲーションフレームワークパイプラインの配列サブセット

    3. nodejs/mongooseによるサブドキュメントの部分的な更新

    4. エラー:127.0.0.1:6379へのRedis接続に失敗しました-ECONNREFUSED127.0.0.1:6379に接続してください