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

フィールド名のないmongodbクエリ

    残念ながら、MongoDBは、特定の値を持つすべてのフィールドをクエリする方法をサポートしていません。この拡張機能を要求する既存のJiraチケットがあります:https://jira.mongodb.org/browse/SERVER-1248。そのチケットにコメント、投票、またはフォローしてください。

    それまでの間、これが処理される通常の方法は、MongoDBスキーマを変更することです。たとえば、既存のスキーマを変更します。

    {"123": "apple", "217": "pear", "179": "orange"} 
    {"831": "pear", "189": "grapes"} 
    

    そして、あなたはそれを次のように構成するかもしれません:

     { tags: [
            { cid: "123", value: "apple" },
            { cid: "217", value: "pear" },
            { cid: "179", value: "orange" },
          ]
        }
       { tags: [
            { cid: "831", value: "pear" },
            { cid: "189", value: "grapes" },
          ]
        }
    

    これを実行したら、次のクエリを実行して、必要なすべてのドキュメントを見つけることができます。

     db.docs.find( {'tags.value': "apple" } )
    

    このスキーマでは、元のスキーマではできない「tags.cid」フィールドと「tags.value」フィールドにインデックスを付けることができます。

    これがお役に立てば幸いです。

    -ウィリアム



    1. redisのマスター/スレーブステータスを知る方法は?

    2. MongoDB-Queryでキャストすることは可能ですか?

    3. Redis:Redisログファイルにアクセスする方法

    4. PrometheusとClusterControlを使用してMongoDBを監視する方法