Python MongoDB Busca

No MongoDB, usamos os métodos find e findOne para buscar dados no conjunto.

Da mesma forma que a cláusula SELECT é usada para buscar dados em tabelas do banco de dados MySQL.

Buscar um item

Para selecionar dados de um conjunto no MongoDB, podemos usar find_one() Método.

find_one() O método retorna o primeiro item correspondente na seleção.

Exemplo

Buscar o primeiro documento do conjunto "customers":

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

Executar exemplo

Buscar tudo

Para selecionar dados de uma tabela no MongoDB, também podemos usar find() Método.

find() O método retorna todos os itens correspondentes na seleção.

find() O primeiro parâmetro é o objeto query. Neste exemplo, usamos um objeto query vazio, que seleciona todos os documentos do conjunto.

find() O método não fornece parâmetros que resultem no mesmo efeito que o SELECT * no MySQL.

Exemplo

Retorna todos os documentos do conjunto "customers" e imprime cada documento:

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

Executar exemplo

Apenas retorna alguns campos

find() O segundo parâmetro é o objeto que descreve os campos contidos no resultado.

Este parâmetro é opcional. Se omitido, todos os campos serão incluídos no resultado.

Exemplo

Apenas retorna nome e endereço, não _ids:

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

Executar exemplo

Não é permitido especificar 0 e 1 ao mesmo tempo no mesmo objeto (a menos que um dos campos seja o campo _id). Se for especificado 0 para um campo, todos os outros campos terão o valor 1, e vice-versa:

Exemplo

Este exemplo exclui "address" dos resultados:

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

Executar exemplo

Exemplo

Se for especificado 0 e 1 ao mesmo tempo no mesmo objeto, ocorrerá um erro (a menos que um dos campos seja o campo _id):

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