Python MongoDB запрос

Фильтрация результатов

При поиске документов в集合е вы можете использовать объект query для фильтрации результатов.

find() Первый параметр метода - объект query, который используется для ограничения поиска.

Пример

Искать документ с адресом "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)

Запуск примера

Сложные запросы

Для выполнения сложных запросов можно использовать модификаторы в качестве значений в объекте запроса.

Например, чтобы найти документы, адрес которых начинается с буквы "S" или выше (по алфавиту), используйте модификатор больше, чем:{"$gt": "S"}:

Пример

Найти документы, адрес которых начинается с буквы "S" или выше:

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)

Запуск примера

Использование регулярного выражения для фильтрации

Вы также можете использовать регулярное выражение в качестве модификатора.

Регулярные выражения могут использоваться только для запросов строк.

Если нужно найти документы, адрес которых начинается с буквы "S", используйте регулярное выражение {"$regex": "^S"}:

Пример

Найти документы, адрес которых начинается с буквы "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)

Запуск примера