Black November

ATÉ 50% OFF

TÁ ACABANDO!

0 dias

0 horas

0 min

0 seg

Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Criando um array dinâmico

Olá, minha dúvida foge um pouco do contexto do curso, mas é javascript, como não tenho experiência nem conhecimento, acredito que também vale... alguém pode me ajudar a criar esse array dinâmico, eu consigo fazê-lo manipulando string, porém não consigo executá-lo na aplicação.

query = req.body;
...
[codigo omitido]
...
        "must": [
          { "match": { "chave1": query.valor1} },
          { "match": { "chave3": query.valor3} },
          { "match": { "chave4": query.valor4} },
          { "match": { "chave5": query.valor5} },
          { "match": { "chave7": query.valor7} },
          { "match": { "chaveX": query.valorX } }
        ]

Estou usando elasticsearch e preciso desses campos para fazer o filtro. Declarei o array e com IFs fui filtrando e montando o "match", mas não deu certo, acho que ele não entende o filtro e trás todo mundo. Não são todos os campos que utilizo no filtro, teria que ter um IF dentro de um FOR para ir montando, como não tenho experiência com javascript não consegui programar essa lógica, ou qualquer outra parecida. Por exemplo, no FOR, como faço para mapear se existe algum campo, para depois aplicar o IF? Object.keys dá erro... Alguém consegue me dar uma mãozinha, por favor? Obrigado

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta
solução!

Consegui utilizando push.

  var busca = [];
    if(query.razao_social){
      busca.push({"match": { "razao_social":  query.razao_social }});
    }
...