Необхідні умови:
- UI editor UBOS
- Flow Builder UBOS
- Не пуста колекція MongoDB
Після того, як було створено нову колекцію, виникає необхідність переглянути всі елементи чи декілька з певним значенням поля. Для цього можна встановити та налаштувати MongoDB Compass, але є кращий та швидший варіант, використовуючи Node-Red.
Покажемо це на прикладі колекції із даними про погоду протягом 5-ти днів:
Відображення всіх елементів колекції
Для цього використаємо inject
, щоб звернутись до бази даних вказану у вузлі mongodb in
та debug
, щоб побачити результат:
Створюємо endpoint:
У вузлі mongodb in
з назвою "weatherDB"
- обираємо базу даних,
- вказуємо потрібну колекцію,
- обираємо операцію "find".
Після цього залишилось запустити endpoint, натиснувши кнопку на вузлі inject
(timestamp - це параметр вузла за замовчуванням):
В меню праворуч, відкривши поле debug
, можна побачити елементи колекції:
Фільтрація елементів.
Уявимо, що потрібно знайти всі дні коли, погода була сонячною. Для цього потрібно додати вузол function
і в msg.payload відповідну пару ключ-значення:
msg.payload={
description: "Sunny"
}
return msg;
Можна фільтрувати за декількома значеннями:
msg.payload={
description: "Sunny",
day: "Wednesday"
}
return msg;
Сортування елементів.
Для сортування елементів використовують оператор $sort та операцію aggregate. Для прикладу відсортуємо дні в порядку зростання температури:
msg.payload={
$sort:{
temperature: 1
}
}
return msg;
Вивід даних в таблицю.
Вміст колекції БД також можна відобразити в UI
частині. Спершу до endpoint в Node-Red необхідно додати вузол http in
із URL "/getWeater":
Для виконання запиту до бази даних в UI Editor
потрібно створити API call із методом GET та URL потрібного endpoint. URL складається із посилання на Node-Red та endpoint:
Посилання на Node-Red можна отримати в лівому меню:
Після виклику API на кнопку RUN
переходимо на сторінку та створюємо таблицю (віджет Table), в полі Table Data вказуємо {{getWeather.data}}
:
Top comments (0)