Python MongoDB etsi

MongoDB:ssä käytämme find- ja findOne-metodeja kokoelman tietojen hakemiseen.

Kuten SELECT-lause käytetään tietojen hakemiseen MySQL-tietokannan taulusta.

Etsi yksi

Jos haluat valita tietoja MongoDB-kokoelmasta, voimme käyttää find_one() Metodi.

find_one() Metodi palauttaa ensimmäisen valinnassa olevan vastaavan.

Esimerkki

Etsi ensimmäinen dokumentti "customers"-kokoelmasta:

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

Suorita esimerkki

Etsi kaikki

Jos haluat valita tietoja MongoDB-taulusta, voimme käyttää myös find() Metodi.

find() Metodi palauttaa kaikki valinnassa olevat vastaavat.

find() Metodin ensimmäinen parametri on kyselyobjekti. Tässä esimerkissä käytimme tyhjää kyselyobjektia, joka valitsee kokoelman kaikki dokumentit.

find() Metodi ei tarjoa parametreja, jotka vastaavat MySQL:n SELECT * -tulosta.

Esimerkki

Palauttaa "customers"-kokoelman kaikki dokumentit ja tulostaa kussakin dokumentissa:

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

Suorita esimerkki

Palauttaa vain tietyt kentät

find() Toisen parametrin on kuvaus objekti, joka sisältää kentät, jotka sisältyvät tulokseen.

Tämä parametri on valinnainen, jos sitä ei määritetä, kaikki kentät sisältyvät tulokseen.

Esimerkki

Palauttaa vain nimen ja osoitteen, ei _id:itä:

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

Suorita esimerkki

Ei sallita määrittää samassa objektissa sekä 0 että 1 arvoa (ellei yksi kentistä ole _id-kenttä). Jos määritetään arvoksi 0 kenttä, kaikki muiden kenttien arvot ovat 1, ja päinvastoin:

Esimerkki

Tämä esimerkki poistaa "address": tuloksista

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

Suorita esimerkki

Esimerkki

Jos samassa objektissa määritetään sekä 0 että 1 arvo, virhe ilmenee (ellei yksi kentistä ole _id-kenttä):

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