Jestem nowy w MongoDB.
Mam produkt, który może mieć wiele tagów. Widziałem tutoriale, w których kolekcja wyglądała następująco:
{
_id: 1234,
tags: ["stationery","electronics"]
}
{
_id: 456,
tags: ["home","electronics"]
}
{
_id: 135,
tags: ["books","stationery"]
}
Mam stałą listę tagów. Wszystkie moje produkty będą należeć do tych tagów. Teraz moje pytanie brzmi: jak przechowywać taką listę, aby po dodaniu nowego produktu wyświetlić tę listę i poprosić użytkownika o wybranie tagów tylko z tej listy?
Czy powinienem zrobić inny dokument o nazwie Tagi i zapisać odniesienie w każdej kolekcji? Jeśli to zrobię, podczas wyszukiwania produktów należących do kategorii Książki będę musiał uruchomić 2 zapytania.
Proszę zasugeruj!
Odpowiedzi:
1 dla odpowiedzi № 1Przechowuj tagi, jak widać w samouczkach.
{
_id: 1234,
tags: ["stationary","electronics"]
}
Pozwala to na łatwe zapytania. Teraz, aby obsługiwać interfejs dodawania tagów, stworzyłem osobną kolekcję „tagów”, która składałaby się z bardzo prostych dokumentów
{ name: "stationary" }
{ name: "electronics" }
{ name: "books" }
(mongodb utworzy _id
pole na nich, ale nie dbasz o to).
Twój interfejs użytkownika będzie czytał dokumenty z tej kolekcji i używał name
właściwość do wypełnienia tags
własność produktów.