Python MongoDB Localizar
No MongoDB, usamos os métodos find e findOne para encontrar dados em uma coleção.
Assim como a instrução SELECT é usada para localizar dados em uma tabela em um banco de dados MySQL.
Encontre um
Para selecionar dados de uma coleção no MongoDB, podemos usar o
find_one()
método.
O find_one()
método retorna a primeira ocorrência na seleção.
Exemplo
Encontre o primeiro documento na coleção de clientes:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one()
print(x)
Encontrar tudo
Para selecionar dados de uma tabela no MongoDB, também podemos usar o
find()
método.
O find()
método retorna todas as ocorrências na seleção.
O primeiro parâmetro do find()
método é um objeto de consulta. Neste exemplo, usamos um objeto de consulta vazio, que seleciona todos os documentos da coleção.
Nenhum parâmetro no método find() fornece o mesmo resultado que SELECT * no MySQL.
Exemplo
Devolva todos os documentos da coleção "clientes" e imprima cada documento:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
print(x)
Retornar apenas alguns campos
O segundo parâmetro do find()
método é um objeto que descreve quais campos incluir no resultado.
Este parâmetro é opcional e, se omitido, todos os campos serão incluídos no resultado.
Exemplo
Retorne apenas os nomes e endereços, não os _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)
Você não tem permissão para especificar valores 0 e 1 no mesmo objeto (exceto se um dos campos for o campo _id). Se você especificar um campo com o valor 0, todos os outros campos obterão o valor 1 e vice-versa:
Exemplo
Este exemplo excluirá "endereço" do resultado:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "address": 0 }):
print(x)
Exemplo
Você recebe um erro se especificar os valores 0 e 1 no mesmo objeto (exceto se um dos campos for o campo _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)