Najít Python MongoDB
V MongoDB používáme k vyhledání dat v kolekci metody find a findOne .
Stejně jako se příkaz SELECT používá k vyhledání dat v tabulce v databázi MySQL.
Najdi jednu
Pro výběr dat z kolekce v MongoDB můžeme použít
find_one()
metodu.
Metoda find_one()
vrací první výskyt ve výběru.
Příklad
Najděte první dokument ve sbírce zákazníků:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one()
print(x)
Najít vše
Pro výběr dat z tabulky v MongoDB můžeme také použít
find()
metodu.
Metoda find()
vrátí všechny výskyty ve výběru.
Prvním parametrem find()
metody je objekt dotazu. V tomto příkladu použijeme prázdný objekt dotazu, který vybere všechny dokumenty v kolekci.
Žádné parametry v metodě find() vám neposkytnou stejný výsledek jako SELECT * v MySQL.
Příklad
Vraťte všechny dokumenty ve sbírce „zákazníci“ a každý dokument vytiskněte:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
print(x)
Vrátit pouze některá pole
Druhým parametrem find()
metody je objekt popisující, která pole se mají zahrnout do výsledku.
Tento parametr je volitelný a pokud je vynechán, budou do výsledku zahrnuta všechna pole.
Příklad
Vraťte pouze jména a adresy, nikoli _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)
Nesmíte zadat obě hodnoty 0 a 1 ve stejném objektu (kromě případů, kdy je jedním z polí pole _id). Pokud zadáte pole s hodnotou 0, všechna ostatní pole získají hodnotu 1 a naopak:
Příklad
Tento příklad vyloučí z výsledku „adresu“:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "address": 0 }):
print(x)
Příklad
Pokud ve stejném objektu zadáte hodnoty 0 i 1, zobrazí se chyba (kromě případů, kdy je jedním z polí pole _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)