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

JSONオブジェクト構造をドット表記に変換する方法は?

    これは、ほとんどのニーズに十分対応できる柔軟性が必要です。

    function dotNotate(obj,target,prefix) {
      target = target || {},
      prefix = prefix || "";
    
      Object.keys(obj).forEach(function(key) {
        if ( typeof(obj[key]) === "object" && obj[key] !== null ) {
          dotNotate(obj[key],target,prefix + key + ".");
        } else {
          return target[prefix + key] = obj[key];
        }
      });
    
      return target;
    }
    

    excludesFieldsで実行します そのような変数:

    dotNotate(excludeFields);
    

    現在の構造を返します:

    { "Contact.Address" : 0, "Contact.Phone" : 0 }
    

    したがって、インラインで行うこともできます:

    things.findOne({}, {fields: dotNotate(excludeFields) })
    

    または、予測として提供します:

    var projection = { "fields": {} };
    dotNotate(excludeFields,projection.fields);
    things.findOne({}, projection);
    

    $pushのような演算子が必要でない限り、すべての深さで、そして本質的な方法で配列を使用してもうまく機能します 。



    1. 過去24時間に作成された投稿の日付に関するクエリ

    2. MongoDBプロパティ名を短縮することは価値がありますか?

    3. predisでredisタイムアウト

    4. 複数のWebリクエストにまたがるMongoDBトランザクション