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

Mongo配列内のネストされたフィールドをクエリします。

    $elemMatchを使用することをお勧めします このために。

    {"genres": { "$elemMatch" :  {"name": "Shooter"} } }
    // or
    {"genres": { "$elemMatch" :  {"name": { "$in": ["Shooter"] } } } }
    

    https://docs.mongodb.com/manual/reference/operator/ query / elemMatch /

    mongodbドット表記を使用することもできますが、それ以外はほとんど同じように機能します。

    {"genres.name": "Shooter"}
    // or
    {"genres.name": { "$in": ["Shooter"]}}
    

    Mongodbは、genresの場合にこれを解釈する方法を知っています。 は配列です。ドット表記クエリはnameとも一致するため、少しあいまいであることに注意してください。 genresの場合のプロパティ プロパティは配列ではありません。たとえば、このドキュメントは次のように一致します:

    {"genres": { "name": "Shooter" } }
    

    いずれの場合も、nameにインデックスを付けることができます genresのプロパティ 配列とインデックスがルックアップに使用されます。

    db.collection.createIndex({'genres.name': 1})
    

    https://docs.mongodb.com/manual/reference/用語集/#term-dot-notation

    https://docs.mongodb.com/manual/reference/operator/ query / in /




    1. MongoDB group()関数でDoubleの代わりに長いアキュムレータ

    2. $lookupmongodbの$project

    3. 水平方向にスケーリングされた分散システム向けの、Pub/SubでのRedisクラスターとZeroMQ

    4. Kubernetes / Rancher 2、mongo-ローカルストレージボリュームをデプロイしたレプリカセット