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

親フィールドが不明な場合に、ネストされたドキュメント内のフィールドを持つレコードを検索する

    ネストされたドキュメントのキーを検索するには、ドキュメントフィールドを再帰的に繰り返す必要があります。これは、JavaScriptで $ whereを使用して行うことができます。 MongoDBのメソッド以下のクエリは、ドキュメントとそのサブドキュメントにキー名が存在するかどうかを検索します。

    私はあなたが与えた例でこれをチェックしました、そしてそれは完全にうまく働いています。

    db.getCollection('test').find({ $where: function () {
        var search_key = "lev3_field2";
    
        function check_key(document) {
          return Object.keys(document).some(function(key) {
            if ( typeof(document[key]) == "object" ) {
                if ( key == search_key ) {
                    return true;
                } else {
                    return check_key(document[key]);
                }
            } else {
              return ( key == search_key );
            }
          });
        }
        return check_key(this);
      }}
    
    );
    


    1. 整数フィールドでのRailsMongoid正規表現

    2. ライブラリをmongoDBのsystem.jsに保存するためのテクニック

    3. mongodbで一意のオブジェクトIDを生成する方法

    4. Node.jsにすべてのMongoDBデータベースを一覧表示するにはどうすればよいですか?