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

mongoシェルクエリでネストされた配列の一致するフィールドのみを投影する方法

    わかりました。トリックは、集約フレームワーク、具体的にはアンワインド でした。 。

    > db.mytest.aggregate({$unwind: '$top'},
                          {$unwind: '$top.nest'},
                          {$match: {'top.nest.p': 6}}
      )
    

    1つのオブジェクトに複数のサブ一致がある場合でも、元のグループ化された形式ではなく、複数の結果が返されます。 $groupを置くことができると思います ただし、パイプラインに入れます。

    私が見つけた関連リンクは、現時点で唯一の完全な修正としてスキーマの再設計を提案しているので、これは間違いなく何もないよりはましです。




    1. Angular Google Maps / NodeJS:データベースからのマーカーの表示

    2. mongoコレクションに値が存在するかどうかを確認します

    3. mongoDBでコレクションの名前を変更する

    4. MongoDB:大文字と小文字の区別、アクセント、ロジックのようなパーセント(%)を無視してドキュメントを検索する方法