Jak używać zapytania FindOne w MongoDB
Metoda FindOne () zwraca pojedynczy dokument danej nazwy kolekcji, gdy wykonuje się w skorupce MongoDB. Ponadto metoda FindOne () przyjmuje również parametr, który obejmuje wyrażenie warunkowe i projekcję. Wartość parametryczna jest omówiona w poniższym przykładzie działającym. Wcześniej osadzaliśmy dokumenty w kolekcji „telefonów komórkowych”. Używamy zapytania InsertMany, aby dodać dokumenty w naszej kolekcji „mobilnej”. Zapytanie o wstawianie podano w następujący sposób:
db.mobilny.wstrząs
_id: 1,
Brand: „Oppo”,
Nazwa: „Oppo F21 Pro”,
Gwarancja: „5”,
Cena: 51000
,
_id: 2,
Marka: „Samsung”,
Nazwa: „Samsung A12”,
Gwarancja: „2”,
Cena: 45000
,
_id: 3,
Marka: „OnePlus”,
Nazwa: „OnePlus 8 Pro”,
Gwarancja: „6”,
Cena: 900000
,
_id: 4,
Marka: „Infinix”,
Nazwa: „Infinix Note 7”,
Gwarancja: „1”,
Cena: 67000
,
_id: 5,
Marka: „vivo”,
Nazwa: „Vivo S1”,
Gwarancja: „3”,
Cena: 21600
])
Wynik, który jest widoczny na poniższym obrazie, pokazuje, że dokumenty są pomyślnie dodawane do kolekcji „telefonów komórkowych”. Teraz używamy tej kolekcji próbek „telefonu komórkowego”, aby pokazać działanie zapytania FindOne, aby pobrać pojedynczy dokument.
Przykład 1: Korzystanie z zapytania FindOne w MongoDB
Tutaj przywołujemy metodę FindOne () z pustymi parametrami, aby zobaczyć działanie metody FindOne () bez żadnej wartości parametrycznej. Mamy zapytanie, w którym podana jest kolekcja „mobilna”, a metoda FindOne () jest wywoływana przez kolekcję „mobilną”.
db.mobilny.FindOne ()
Zapytanie FindOne (), po wykonaniu, zwraca singiel i pierwszy dokument kolekcji „mobilnej”, ponieważ nie ma warunku, aby uzyskać konkretny dokument. Stąd, wykonując metodę FindOne () z pustymi specyfikacjami zapytania, zawsze zwraca pierwszy dokument kolekcji.
Przykład 2: Korzystanie z zapytania FindOne w MongoDB, dostarczając pole
Tutaj używamy metody FindOne () z parametrem zapytania. Parametr zapytania jest zdefiniowany jako „nazwa:„ vivo s1 ””, który znajduje dokument, którego pole „nazwa” jest równe wartości „viva s1”. Jeśli pobrane zostaną dwa lub więcej dokumentów o tych samych wynikach, tylko pierwszy dopasowany dokument jest pobierany przez metodę FindOne (). Mamy następującą metodę FindOne () ze specyfikacją zapytania:
db.mobilny.FindOne (name: "vivo s1")
Ponieważ mamy tylko jeden dokument, którego pole „nazwa” zawiera wartość „vivo s1” w kolekcji „mobilnej”, która jest postrzegana jako dokument na następujący obraz:
Przykład 3: Korzystanie z zapytania FindOne w MongoDB poprzez zapewnienie wartości pola nieistniejącego
Gdy dokument nie jest dopasowany ze specyfikacjami danymi zapytania, metoda FindOne () zwraca wartość „null” w wyjściu. Tutaj podajemy zapytanie w metodzie FindOne (), w której ustawiamy kryteria „_id: 6”. Pole _ID jest przypisane wartością „6”, która nie jest zawarta w naszej kolekcji „telefonów komórkowych” MongoDB.
db.mobilny.FindOne (_ id: 6)
Jak widzimy, sznur zerowy jest uzyskiwany po uruchomieniu poprzedniego zapytania FindOne. Wynika to z faktu, że wartość „6” _ID pasuje do dowolnego z dokumentów „telefony telefonicznej”.
Przykład 4: Korzystanie z zapytania FindOne w MongoDB poprzez dostarczanie projekcji
Metoda FindOne () generuje dokument, który zawiera tylko pola projekcyjne, jeżeli określono argument projekcyjny. Parametr projekcji tutaj wyświetla te pola, które są uwzględnione. Mamy następujące zapytanie FindOne, w którym ustawiamy kryteria „marka:„ Samsung ””, a następnie ustawiamy parametr projekcji, który zawiera wyrażenie „cena: 1”. Metoda FindOne () najpierw dopasowuje dokument do podanych kryteriów, a następnie wyświetla pole „Cena” tego konkretnego dokumentu, ponieważ projekcja jest ustawiona w polu „Cena”. „Cena” jest podana z wartością „1”, a wartość „1” jest oznaczona jako prawdziwa w projekcji MongoDB.
db.mobilny.FindOne (marka: „Samsung”, cena: 1)
Findene zapytanie pasuje do dokumentu, którego „marka” ma wartość „Samsung” i wyświetla pole dokumentu „Cena” w wyjściu. Domyślnie pole „_id” jest jedynym pole, które jest zawsze wyświetlane podczas wykonywania metody FindOne ().
Przykład 5: Korzystanie z zapytania FindOne w MongoDB poprzez zapewnienie projekcji w celu wykluczenia pól
W poprzednim przykładzie metody FindOne () używamy parametru projekcji w metodzie FindOne (), aby uwzględnić określone pola. Teraz używamy metody FindOne () do identyfikacji dokumentu z dopasowanymi kryteriami. Następnie parametr projekcji wyklucza konkretne pole tego dokumentu. To wyjaśnienie można łatwo zrozumieć za pomocą następującego polecenia zapytania. Ustawiamy metodę FindOne () z kryteriami wyboru „Brand:„ Oppp ”. Metoda FindOne () odpowiada dokumentowi z kolekcji „telefonów komórkowych”, której wartością „marką” jest „Oppo”. Następnie wyklucz pola „_id”, „nazwa” i „cena” z dopasowanego dokumentu, ponieważ wartość projekcji do tych pól przypisuje się wartość „0”, co oznacza false.
db.mobilny.Znajdź (
Marka: „oppo”,
_id: 0, nazwa: 0, cena: 0
)
Tam mamy dokument pobierany jako wyjście z zapytania FindOne, którego „marka” i „gwarancja” są wyświetlane tylko i wszystkie pozostałe pola są wykluczone.
Przykład 6: Korzystanie z zapytania FindOne w MongoDB poprzez zapewnienie operatora warunkowego
Ten przykład jest metodą FindOne () ze specyfikacjami zapytania jako operatora „$ lub”. Metoda FindOne () pasuje tylko do dokumentu, który spełnia wymaganie $ lub operatora. Zapytajmy o to. Mamy następujące zapytanie, w którym wdrażamy metodę FindOne (), a następnie ustawiamy w niej $ lub operator. $ Lub operator zawiera dwa wyrażenia - „name: OnePlus 8 pro” i „gwarancja: $ gt: 3”. Wartość „nazwy” powinna być „OnePlus 8 Pro”, a wartość „gwarancji” powinna być większa niż wartość „3”. Z tych wyrażeń jeden z wyrażeń powinien być prawdziwy zgodnie z wymogami $ lub operatora.
db.mobilny.Znajdź (
$ lub: [
Nazwa: „OnePlus 8 pro”,
Gwarancja: $ gt: 3]
)
W ramach wyjścia uzyskujemy pojedynczy dokument z FindOne (), który spełnia zarówno wyrażenie $ lub operatora.
Wniosek
Celem artykułu jest zbadanie metody FindOne () w MongoDB z implementacją kodu. Tutaj widzieliśmy działanie metody FindOne () bez specyfikacji zapytania i ze specyfikacjami zapytania. Następnie zastosowaliśmy metodę FindOne () do użycia parametru projekcji do wyświetlenia poszczególnych pól. Następnie znaleźliśmy dokument za pomocą metody FindOne (), która przyjmuje operator warunkowy jako kryteria wyboru.