Python MongoDB wyszukiwanie

W MongoDB używamy metod find i findOne do wyszukiwania danych w zbiorze.

Tak jak SELECT zapytanie jest używane do wyszukiwania danych w tabeli w bazie danych MySQL.

Znajdź jedną rzecz

Aby wybrać dane z zbioru w MongoDB, możemy użyć find_one() Metoda.

find_one() Metoda zwraca pierwszy dopasowany element wyboru.

Przykład

Znajdź pierwszy dokument w zbiorze "customers":

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one()
print(x)

Uruchomienie przykładu

Znajdź wszystko

Aby wybrać dane z tabeli w MongoDB, możemy również użyć find() Metoda.

find() Metoda zwraca wszystkie dopasowane elementy wyboru.

find() Pierwszy parametr metody to obiekt zapytania. W tym przykładzie użyliśmy pustego obiektu zapytania, który wybiera wszystkie dokumenty w zbiorze.

find() Metoda nie ma parametrów, które dostarczają tego samego wyniku jak SELECT * w MySQL.

Przykład

Zwraca wszystkie dokumenty w zbiorze "customers" i drukuje każdy dokument:

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
  print(x)

Uruchomienie przykładu

Zwraca tylko niektóre pola

find() Drugi parametr metody jest obiektem opisującym pola zawarte w wynikach.

Ten parametr jest opcjonalny, a jeśli jest pomijany, wszystkie pola będą zawarte w wynikach.

Przykład

Zwraca tylko imię i adres, a nie _ids:

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "_id": 0, "name": 1, "address": 1 }):
  print(x)

Uruchomienie przykładu

Nie można jednocześnie określić wartości 0 i 1 w tym samym obiekcie (oprócz pola _id). Jeśli określone pole ma wartość 0, wszystkie inne pola będą miały wartość 1, i vice versa:

Przykład

Ten przykład wyklucza "address" z wyników:

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "address": 0 }):
  print(x)

Uruchomienie przykładu

Przykład

W przypadku jednoczesnego określenia wartości 0 i 1 w tym samym obiekcie wystąpi błąd (oprócz pola _id):

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "name": 1, "address": 0 }):
  print(x)