Powiedzmy mam następujący schemat dokumentu w kolekcji o nazwie „użytkownicy”:MongoDB: Zapytanie i pobieranie obiektów w osadzonej macierzy?
{
name: 'John',
items: [ {}, {}, {}, ... ]
}
Tablica „przedmioty” zawiera obiekty w następującym formacie:
{
item_id: "1234",
name: "some item"
}
Każdy użytkownik może posiadać kilka pozycji osadzone w tablicy "items".
Teraz chcę mieć możliwość pobrania elementu item_id dla danego użytkownika.
Na przykład chcę uzyskać element o identyfikatorze "1234", który należy do użytkownika o nazwie "John".
Czy mogę to zrobić z mongoDB? Chciałbym wykorzystać jego potężne indeksowanie tablicowe, ale nie jestem pewien, czy można uruchamiać kwerendy na osadzonych tablicach i zwracać obiekty z tablicy zamiast dokumentu, który ją zawiera.
Wiem, że mogę pobrać użytkowników, którzy mają określony produkt za pomocą {users.items.item_id: "1234"}. Ale chcę pobrać rzeczywisty element z tablicy, a nie użytkownika.
Czy istnieje lepszy sposób uporządkowania tych danych, aby móc łatwo uzyskać to, czego chcę? Nadal jestem całkiem nowy w mongodb.
Dziękujemy za udzielenie pomocy lub porady.
możliwe duplikat [MongoDB wyodrębnić tylko wybrany element w tablicy] (http: // stackoverflow.com/questions/3985214/mongodb-extract-only-the-selected-item-in-array) – Foreever
Witaj, @Nebs, czy możesz przejrzeć zaakceptowaną odpowiedź i ją zmienić? Ponieważ istnieje rozwiązanie tego problemu bez potrzeby dwóch oddzielnych kolekcji w nowszych wersjach Mongodb. –