UBOS Community

AC
AC

Posted on • Updated on

How to view the elements of Database collection?

Необхідні умови:

  1. UI editor UBOS
  2. Flow Builder UBOS
  3. Не пуста колекція MongoDB

Після того, як було створено нову колекцію, виникає необхідність переглянути всі елементи чи декілька з певним значенням поля. Для цього можна встановити та налаштувати MongoDB Compass, але є кращий та швидший варіант, використовуючи Node-Red.

Покажемо це на прикладі колекції із даними про погоду протягом 5-ти днів:
Image description

Відображення всіх елементів колекції

Для цього використаємо inject, щоб звернутись до бази даних вказану у вузлі mongodb in та debug, щоб побачити результат:

Image description

Створюємо endpoint:

Image description

У вузлі mongodb in з назвою "weatherDB"

  • обираємо базу даних,
  • вказуємо потрібну колекцію,
  • обираємо операцію "find".

Image description

Після цього залишилось запустити endpoint, натиснувши кнопку на вузлі inject (timestamp - це параметр вузла за замовчуванням):
Image description

В меню праворуч, відкривши поле debug, можна побачити елементи колекції:
Image description

Фільтрація елементів.

Уявимо, що потрібно знайти всі дні коли, погода була сонячною. Для цього потрібно додати вузол function і в msg.payload відповідну пару ключ-значення:

msg.payload={
    description: "Sunny"
}
return msg;
Enter fullscreen mode Exit fullscreen mode

Image description
Можна фільтрувати за декількома значеннями:

msg.payload={
    description: "Sunny",
    day: "Wednesday"
}
return msg;
Enter fullscreen mode Exit fullscreen mode

Image description

Сортування елементів.

Для сортування елементів використовують оператор $sort та операцію aggregate. Для прикладу відсортуємо дні в порядку зростання температури:

msg.payload={
    $sort:{
        temperature: 1
    }
}
return msg;
Enter fullscreen mode Exit fullscreen mode

Image description
Результат:
Image description

Вивід даних в таблицю.

Вміст колекції БД також можна відобразити в UI частині. Спершу до endpoint в Node-Red необхідно додати вузол http in із URL "/getWeater":
Image description
Image description

Для виконання запиту до бази даних в UI Editor потрібно створити API call із методом GET та URL потрібного endpoint. URL складається із посилання на Node-Red та endpoint:

Image description

Посилання на Node-Red можна отримати в лівому меню:

Image description
Після виклику API на кнопку RUN переходимо на сторінку та створюємо таблицю (віджет Table), в полі Table Data вказуємо {{getWeather.data}}:
Image description

Discussion (0)