Apache Zeppelin db.collection.find issue

1
db.${collection=none}.find( {}, { ${key=none}: [ { $eq: "${value=none}" } ] } ).table()

Quando executo o código listado acima no zeppelin, é preciso procurar um resultado exato na chave com base no valor inserido na caixa $ {value = none}, mas ele não é filtrado. Apenas mostra todos os dados. Alguma idéia por quê? e como consertar?

    
por user291903 20.07.2017 / 01:18

1 resposta

0

O O intérprete do MongoDB para o Zeppelin usa a mesma sintaxe que o mongo shell: db.collection.find(query, projection) .

Seu primeiro parâmetro de {} corresponde a todos os documentos. O segundo parâmetro será interpretado como uma projeção (embora sua sintaxe seja desnecessariamente complexa).

Como $eq é equivalente a {field: "value"} e você tem apenas um único valor, sua consulta pode ser mais claramente expressa como:

db.${collection=none}.find({ ${key=none}: "${value=none}" }).table()

Se a sua intenção é fornecer um formulário de entrada mais genérico (em vez de solicitar um único par de chave / valor), talvez você queira colocar o marcador de lugar na consulta e na projeção, por exemplo:

empty = {}  // Placeholder for empty documents
db.${collection=none}.find(${query=empty},${projection=empty}).table()

Neste segundo exemplo, sua consulta seria expressa como { field: "value" } no formulário de entrada do Zeppelin. Você também pode especificar critérios de consulta adicionais e uma projeção para os campos a serem incluídos nos resultados.

    
por 22.07.2017 / 08:20

Tags