Python MongoDB-sök

I MongoDB använder vi find- och findOne-metoder för att söka data i samlagen.

Liksom SELECT-satsen används för att söka data från tabeller i MySQL-databaser.

Sök ett element

För att välja data från en samling i MongoDB kan vi använda find_one() Metod.

find_one() Metoden returnerar den första matchande posten i valet.

Exempel

Sök det första dokumentet i samlaget "customers":

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

Kör exempel

Sök alla

För att välja data från en tabell i MongoDB kan vi också använda find() Metod.

find() Metoden returnerar alla matchande poster i valet.

find() Den första parametern är query-objektet. I detta exempel använde vi ett tomt query-objekt som väljer alla dokument i samlaget.

find() Metoden erbjuder inga parametrar som ger samma resultat som SELECT * i MySQL.

Exempel

Returnerar alla dokument i samlaget "customers" och skriver ut varje dokument:

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

Kör exempel

Returnerar endast vissa fält

find() Den andra parametern är ett objekt som beskriver fält som inkluderas i resultatet.

Denna parameter är valfri. Om den utelämnas kommer alla fält att inkluderas i resultaten.

Exempel

Returnerar endast namn och adress, inte _ids:

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

Kör exempel

Det är inte tillåtet att specificera 0 och 1-värden samtidigt i samma objekt (utom om en av fälten är _id-fältet). Om ett fält med värde 0 specificeras, kommer alla andra fält att ha värde 1, och vice versa:

Exempel

Detta exempel exkluderar "address" från resultaten:

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

Kör exempel

Exempel

Om 0 och 1-värden specificeras samtidigt i samma objekt uppstår ett fel (utom om en av fälten är _id-fältet):

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