MongoDB: Jak pobrać rekordy z tablicy obiektów?

Opublikowano: 19.07.2022 - tagi: MongoDB Baza danych Zapytanie Szukanie Rekord Tablica Obiekt

Mamy taką kolekcję:

[
	{ 

		title: "Product 1", 
		tags: [
			{ name: "Tag 1", value: "tag1" }
		] 
	},
	{ 

		title: "Product 2", 
		tags: [
			{ name: "Tag 2", value: "tag2" },
			{ name: "Tag 4", value: "tag4" }
		] 
	},
	{ 

		title: "Product 3", 
		tags: [
			{ name: "Tag 1", value: "tag1" },
			{ name: "Tag 3", value: "tag3" }
		] 
	},
	{ 

		title: "Product 4", 
		tags: [
			{ name: "Tag 1", value: "tag1" },
			{ name: "Tag 3", value: "tag3" },
			{ name: "Tag 4", value: "tag4" }
		] 
	},
]

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:

db.collection.find({"tags.value": { $in: ["tag1", "tag3"] } })

Zauważ, że to zapytanie pobierze dane, które mają przynajmniej jedną wartość w podanej tablicy.

Jeśli zależy nam na spełnieniu wszystkich warunków, powinniśmy skorzystać z operatora: $all:

db.collection.find({"tags.value": { $all: ["tag1", "tag3"] } })

Pobierze dwa rekordy, które zawierają zarówno tag1 i tag2.


MongoDB: Jak pobrać rekordy na podstawie ciągu znaków?

Opublikowano: 16.07.2022 - tagi: MongoDB Baza danych Zapytanie Tekst Szukanie Rekord

Mamy taką strukturę kolekcji z danymi:

[
	{ title: "Lorem ipsum dolor sit amet, consectetur adipiscing elit", amount: 10 },
	{ title: "Nunc fringilla posuere mi, lacinia vulputate magna lobortis nec", amount: 7 },
	{ title: "Etiam lacinia urna id felis vulputate ullamcorper", amount: 32 },
	{ title: "Aenean euismod sed lorem quis tempor.", amount: 50 }
]

I chcemy pobrać rekordy z kolekcji na podstawie jakiegoś fragmentu tekstu. Na przykład lorem:

db.collection.find({ title: /lorem/i })

W tym zapytaniu wykorzystujemy tutaj wyrażenie regularne. Dla tego zapytania pobierze dwa rekordy:

[
	{ title: "Lorem ipsum dolor sit amet, consectetur adipiscing elit", amount: 10 },
	{ title: "Aenean euismod sed lorem quis tempor.", amount: 50 }
]

Zauważ, że wykorzystujemy tutaj także flagę i ponieważ nie chcemy brać pod uwagę wielkości liter.


JavaScript: Jak znaleźć klucz w obiekcie na podstawie wartości?

Opublikowano: 14.07.2022 - tagi: JavaScript Obiekt

Mamy obiekt:

const data = {
  KEY_1: 'Value1',
  KEY_2: 'Value2',
  KEY_3: 'Value3',
};

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.


Dlaczego warto tworzyć własne projekty?

Opublikowano: 12.07.2022 - tagi: Projekt Przemyślenia

Tworzysz coś swojego

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.


Comics: Deployment on Friday

Opublikowano: 09.07.2022 - tagi: Komiks Rysowanie Deployment Serwer