Python MongoDB поиска

В MongoDB мы используем методы find и findOne для поиска данных в集合е.

Как SELECT-запрос используется для поиска данных из таблицы базы данных MySQL.

Найти одно

Чтобы выбирать данные из集合а MongoDB, мы можем использовать find_one() Метод.

find_one() Метод возвращает первый соответствие в выборе.

Пример

Найти первый документ в集合е "customers":

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

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

Найти все

Чтобы выбирать данные из таблицы MongoDB, мы также можем использовать find() Метод.

find() Метод возвращает все соответствия в выборе.

find() Первый параметр метода - объект запроса. В этом примере мы используем пустой объект запроса, который выбирает все документы из集合а.

find() Метод не предоставляет параметров, которые предоставляют результат, аналогичный SELECT * в MySQL.

Пример

Возвращает все документы из集合а "customers" и печатаются каждый документ:

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

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

Возвращает только некоторые поля

find() Второй параметр метода описывает объект, содержащий поля, включенные в результат.

Этот параметр является опционным. Если он опущен, все поля будут включены в результат.

Пример

Возвращает только имя и адрес, а не _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)

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

Не разрешается одновременно указывать значения 0 и 1 в одном и том же объекте (если только одним из полей не является поле _id). Если указано значение 0 для поля, то все другие поля будут иметь значение 1, и наоборот:

Пример

Этот пример исключает "address" из результатов:

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

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

Пример

Если одновременно указаны значения 0 и 1 в одном и том же объекте, возникнет ошибка (если только одним из полей не является поле _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)