Python MongoDB Найти
В MongoDB мы используем методы find и findOne для поиска данных в коллекции.
Так же, как оператор SELECT используется для поиска данных в таблице в базе данных MySQL.
Найдите один
Чтобы выбрать данные из коллекции в MongoDB, мы можем использовать
find_one()
метод.
Метод find_one()
возвращает первое вхождение в выборке.
Пример
Найдите первый документ в коллекции клиентов:
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.
Пример
Верните все документы в коллекцию «клиенты» и распечатайте каждый документ:
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, и наоборот:
Пример
Этот пример исключит «адрес» из результата:
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)