I chcielibyśmy pobrać rekordy na podstawie wartości z tablicy tags. Konkretnie to dla pola: tags.value.
Można to zrobić tak:
db.collection.find({"tags.value": "tag1"})
Takie zapytanie pobierze trzy rekordy.
Na podstawie powyższego zapytania możemy pobrać kilka rekordów na podstawie jednej wartości. Jeśli chcemy pobrać dane dla kilku wartości, możemy skorzystać operatora: $in:
Potrzebujemy wiedzieć jaki klucz ma wartość Value2:
const value = 'Value2';
const key = Object.keys(data).find((item) => value === data[item]);
console.log(key); // KEY_2
To rozwiązanie jest dobre przy założeniu, że wartości kluczy obiektu są unikalne. Nawet jeśli nie są, też zadziała, tylko zwróci pierwszy napotkany klucz.
Jedną z motywacji przy tworzeniu własnego projektu jest dla mnie stworzenie aplikacji, którą będę później używać. Zwykle taka aplikacja ma mi pomóc w osiągnięciu jakiegoś celu lub w automatyzacji pracy.
Ktoś może zadać pytanie: "Po co tworzyć coś takiego skoro na pewno istnieje 10 aplikacji, które mogę użyć?" I pewnie jest w tym wiele racji.
Tworzenie aplikacji to nie tylko pisanie kodu. Jest to proces, podczas którego zbieramy wymagania co do naszej aplikacji. Wiedząc, jak aplikacja ma działać i wyglądać możemy przejść do pisania kodu. Warto przejść przez coś takiego od początku do końca. Wiele można się z tego nauczyć.
Dodatkowo mając pełną kontrolę nad aplikacją, możemy stworzyć wszystko pod siebie.
Uczysz się nowych rzeczy
Inną ważną rzeczą przy tworzeniu aplikacji jest na odpowiedzenie sobie na pytanie: "Czego mogę się nauczyć, pracując nad własnym projektem?" Nowy framework/biblioteka? Coś z architektury oprogramowania?
W "normalnej" pracy zwykle czas nas goni, żeby wszystko dostarczyć na czas. W pracy nad własnym projektem czasu mamy znacznie więcej, żeby zastanowić się nad różnymi rozwiązaniami. Nie ma takiej presji.
Pochwal się tym
Skoro stworzyłeś aplikację, warto pokazać ją światu. Na przykład na rozmowie o pracę możesz opowiedzieć, z jakimi problemami borykałeś się i jak je rozwiązałeś. Zawsze to lepiej wygląda niż zwykłe CV.