Apache Zeppelin db.collection.find выпуск

387
user291903
db.$.find( {}, { $: [ { $eq: "$" } ] } ).table() 

Когда я выполняю код, указанный выше, в zeppelin, он должен искать точный результат в ключе на основе значения, которое я ввожу в поле $, но не фильтрует его. Это просто показывает все данные. Есть идеи почему? а как исправить?

1
Вы могли бы показать данные, которые вы сейчас получаете, и данные, которые вы ожидаете получить, а также запрос, который я думаю. Я не знаю MongoDB, но это похоже на данные типа формата JSON, но, возможно, именно так работает логика с этим языком. В любом случае, можете ли вы предоставить какие-либо данные испытаний и результаты, которые вы получаете сейчас, и показать результаты, которые вы хотели бы вместо этого? Pimp Juice IT 6 лет назад 0

1 ответ на вопрос

0
Stennie

Интерпретатор MongoDB для Zeppelin использует тот же синтаксис, что и mongoоболочки: db.collection.find(query, projection).

Ваш первый параметр {}соответствует всем документам. Второй параметр будет интерпретироваться как проекция (хотя ваш синтаксис излишне сложен).

Поскольку $eqэквивалентно, и у вас есть только одно значение, ваш запрос может быть более четко выражен как:

db.$.find({ $: "$" }).table() 

Если ваше намерение состоит в том, чтобы предоставить более общую форму ввода (а не запрашивать одну пару ключ / значение), вы можете вместо этого заменить запрос и проекцию, например:

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

Во втором примере ваш запрос будет выражен { field: "value" }в форме ввода Zeppelin. Вы также можете указать дополнительные критерии запроса и прогноз для полей, которые будут включены в результаты.

Похожие вопросы