Python MongoDB-søgning

Filtrer resultater

Når du søger efter dokumenter i en samling, kan du bruge query-objektet til at filtrere resultaterne.

find() Den første parameteren er query-objektet, som bruges til at begrænse søgningen.

Eksempel

Findes dokumenter med adresse "Park Lane 38":

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

Kør Eksempel

Avancerede søgninger

For at udføre avancerede søgninger kan du bruge præfikker som værdier i søgeobjektet.

For eksempel, for at finde dokumenter, hvor "address"-feltet starter med bogstavet "S" eller højere (i alfabetisk rækkefølge), skal du bruge en større end præфик:{"$gt": "S"}:

Eksempel

Find dokumenter, hvor adressen starter med bogstavet "S" eller højere:

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

Kør Eksempel

Brug regulære udtryk til at filtrere

Du kan også bruge regulære udtryk som en præфик.

Regulære udtryk kan kun bruges i søgestrengene.

Hvis du kun vil finde dokumenter, hvor "address"-feltet starter med bogstavet "S", skal du bruge en regulær udtryk {"$regex": "^S"}:

Eksempel

Find dokumenter, hvor adressen starter med bogstavet "S":

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": { "$regex": "^S" }
mydoc = mycol.find(myquery)
for x in mydoc:
  print(x)

Kør Eksempel