2016-05-18 2 views
0

は、私は現在elasticsearchを使用しており、現在、私はこのようにそれらを設定しています、私のオブジェクトの上にいくつかの深くネストされたプロパティを設定する必要がありますしています:入れ子オブジェクトのプロパティを設定する方がいいですか?

this.queryDSL.body.filter = {}; 
this.queryDSL.body.filter.bool = {}; 
this.queryDSL.body.filter.bool.must = []; 

反復的な方法を、空のプロパティを構築し、それらの上に付加します。私はこのようにすべてを一度に設定してみました:

this.queryDSL.body.filter.bool.must = [] 

javascriptのは、未定義のエラーの形で、間にブール値を作成していないので、これはエラーになります。

私のやり方は大丈夫ですか、これを行うにはもっと良い方法がありますか?私は第2の例のように一度にすべてを設定したいのが望ましいです。

+1

第2の例の主な問題は、JSが「bool」が何であるべきかを推測することができないことです。私は最初の例に固執します。 –

答えて

3

最初の例は正常に動作していますが、実際には何も問題ありません。

this.queryDSL.body.filter = { 
    bool: { 
     must: [ 

     ] 
    } 
} 
+0

真実なのはちょっとしたタイピングだから、オプションで別のプロパティを同じレベルに設定する必要があるので、具体的にする必要があります。それ以外の場合は、一部のオブジェクト値をリセットすることがあります。私はちょうど少し清潔な何かを望んでいた。しかし、ありがとう! –

関連する問題