Búsqueda de MongoDB Python

En MongoDB, usamos los métodos find y findOne para buscar datos en la colección.

Al igual que las sentencias SELECT se utilizan para buscar datos en tablas de bases de datos MySQL.

buscar un elemento

Para seleccionar datos en una colección de MongoDB, podemos usar find_one() Método.

find_one() El método devuelve el primer elemento coincidente seleccionado.

Ejemplo

buscar el primer documento de la colección customers:

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

Ejecutar ejemplo

buscar todo

Para seleccionar datos de una tabla en MongoDB, también podemos usar find() Método.

find() El método devuelve todos los elementos coincidentes seleccionados.

find() El primer parámetro del método es el objeto de consulta. En este ejemplo, usamos un objeto de consulta vacío, que selecciona todos los documentos de la colección.

find() El método no proporciona parámetros que ofrezcan el mismo resultado que SELECT * en MySQL.

Ejemplo

devuelve todos los documentos de la colección "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)

Ejecutar ejemplo

solo devuelve algunos campos

find() El segundo parámetro de la método es el objeto que describe los campos que se incluyen en el resultado.

Este parámetro es opcional, si se omite, todos los campos se incluirán en los resultados.

Ejemplo

Sólo devuelve nombre y dirección, no _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)

Ejecutar ejemplo

No se permite especificar tanto 0 como 1 en el mismo objeto al mismo tiempo (a menos que uno de los campos sea el campo _id). Si se especifica un valor de 0 para un campo, todos los otros campos tendrán un valor de 1, y viceversa:

Ejemplo

Este ejemplo excluye "address" de los resultados:

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

Ejecutar ejemplo

Ejemplo

Si se especifican tanto 0 como 1 en el mismo objeto al mismo tiempo, se producirá un error (a menos que uno de los campos sea el 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)