2015-12-11 4 views
0

Вопрос: как получить доступ к нескольким документам, возвращенным командой nedb 'find'.Доступ к результатам nedb

Понимание некоторой проницательности, которую я получил, используя nedb в nodejs.

Что касается документов, возвращаемых через nedb, найдите и получите доступ к значению пары ключей: Думал, что это сработает: docs.current.temp_f, но это не так. Работает: docs [0] .current.temp_f работает.

История и детали: Я новичок в JavaScript, nodejs, nedb и никогда не использовал mongodb, но понимаю, что nedb имеет аналогичный API.

Причина моего сообщения: я использую этот сайт много, но не смог найти ответ на свою проблему. Я, наконец, понял это сам, и размещаю его здесь, чтобы я мог вернуть вклад в сообщество.

Я получаю доступ к Wunderground, используя их API. Прекрасно работает. Затем я подталкивал результаты в nedb, используя команду «insert» API nedb. Есть несколько примеров этого, здесь и в другом месте.

Используя команду find API nedb, я смог получить мои данные. Я мог бы распечатать его с помощью console.log(). Опять же, несколько примеров здесь и в других местах для этого.

Wunderground возвращает объект JSON (если требуется в этом формате) в форме {response: {... some data}, current_observation: {... некоторые данные ... temp_f ... еще некоторые данные} }, который можно вставить в базу данных nedb.

Использование nedb API 'найти' команду (например,

db.find ({}, функцию (эээ, Документы) {console.log (Документы);} Я был в состоянии распечатать мои данные. Но мое желание состояло в том, чтобы просто получить несколько ключей: пары значений, а не всю структуру. Я думал, что что-то вроде docs.current_observation.temp_f будет делать трюк, но это всегда было «неопределенным» и вызвало ошибку.

Что я не понял, потому что я настолько новичок в этой области, что nedb возвращает «набор» данных, массив объектов JSON в этом случае, так как я вставлял JSON obje каратов. Я никогда не видел, чтобы это упоминалось где-либо на сайте npmjs.com для nedb. Поэтому я хотел предупредить других, таких, как я, которым не хватало этих знаний.

Вот что, в конечном счете работал, чтобы получить ключ: информация значение: console.log ("temp_f:", документы [0] .current_observation.temp_f);
, где я обращаюсь к элементу массива 0.

Конечно, это, вероятно, закончится чем-то вроде цикла for/in.

Мне было бы интересно увидеть любые дополнительные идеи по извлечению ключа: значения из возвращаемого набора результатов, если вы знаете о них.

//Thought this would work, but it doesn't 
docs.current_observation.temp_f 
//but this does, where x is a value to record 
docs[x].current_observation.temp_f 

ответ

2

Простой ответ языка запросов использовать Mongo с методом поиска, чтобы вернуть массив соответствующих документов, то манипулировать массив объектов, чтобы получить необходимые значения. Используйте для использования при повторных массивах не для. Альтернативно используйте map, filter, forEach и уменьшите методы массива для управления данными массива.

Смежные вопросы