私はelasticsearchクエリを構築しており、データ・サービスに送信する前にオブジェクト・テンプレートを使用してクエリのPOST本体を構築したいと考えています。テンプレートとして使用するconstオブジェクトを割り当てる方法
しかし、私がテンプレートを使用すると、私が宣言した実際のconstオブジェクトは変更され、それ以降テンプレートは壊れてしまいます。以下のコードでは、retunQuery値が変更されただけでなく、INIT_QUERY constの値も同じように変更されています。実際に値を変更せずに、このconstオブジェクトをテンプレートとして使用するにはどうすればよいですか。
const INIT_QUERY = {
"query": {
"filtered": {
"filter": {
"bool": {
"must": <any>[]
}
}
}
}
}
const MATCH_QUERY = {
"match": <any>{}
}
...
export class QueryBuilder {
constructor() {}
buildQuery() {
let returnQuery = INIT_QUERY;
.... loop
let query = MATCH_QUERY;
query.match[dbfield].query = 'fieldValueToSearch';
returnQuery.query.filtered.filter.bool.must.push(query);
.... end loop
return returnQuery;
}
}
この場合、インターフェイスの外観を詳しく説明できますか? – user1873196
確かに、私は私の答えを編集しました。それはあなたのオブジェクトの構造だけです。 – j2L4e
ありがとう!それは素晴らしい仕事でした。 – user1873196