Pymongo Es
Pymongo Es
Pymongo Es
#pymongo
Tabla de contenido
Acerca de 1
Observaciones 2
Examples 2
Instalación o configuración 2
Hola Mundo 2
Instalar PyMongo 2
Crear 3
Actualizar 4
Leer 4
Borrar 4
Introducción 6
Examples 6
Usando json_util 6
Uso simple 6
JSONOptions 6
Usando python-bsonjs 7
Instalación 8
Uso 8
Introducción 10
Examples 10
It is an unofficial and free PyMongo ebook created for educational purposes. All the content is
extracted from Stack Overflow Documentation, which is written by many hardworking individuals at
Stack Overflow. It is neither affiliated with Stack Overflow nor official PyMongo.
The content is released under Creative Commons BY-SA, and the list of contributors to each
chapter are provided in the credits section at the end of this book. Images may be copyright of
their respective owners unless otherwise specified. All trademarks and registered trademarks are
the property of their respective company owners.
Use the content presented in this book at your own risk; it is not guaranteed to be correct nor
accurate, please send your feedback and corrections to [email protected]
https://riptutorial.com/es/home 1
Capítulo 1: Empezando con PyMongo
Observaciones
Esta sección proporciona una descripción general de qué es pymongo y por qué un desarrollador
puede querer usarlo.
También debe mencionar cualquier tema grande dentro de pymongo, y vincular a los temas
relacionados. Dado que la Documentación para pymongo es nueva, es posible que deba crear
versiones iniciales de esos temas relacionados.
Examples
Instalación o configuración
Hola Mundo
Instalar PyMongo
https://riptutorial.com/es/home 2
pip install pymongo
db = client.mydb
col = db.mycollection
MongoDB almacena los registros de datos como documentos BSON . BSON es la representación
binaria de JSON.
$ python
>>> from pymongo import MongoClient
>>> client = MongoClient()
>>> col = client.mydb.test
Crear
Insertar un solo documento insert_one(document)
https://riptutorial.com/es/home 3
>>> result = col.insert_many([{'x': 2}, {'x': 3}])
>>> result.inserted_ids
[ObjectId('583c17e7dc32d44b6e93cd9c'), ObjectId('583c17e7dc32d44b6e93cd9d')]
Actualizar
Actualice un solo documento que coincida con el filtro update_one(filter, update, upsert=False)
Actualice uno o más documentos que coincidan con el filtro update_many(filter, update,
upsert=False)
Leer
Consulte la búsqueda de la base de datos find(filter=None, projection=None, skip=0, limit=0,
no_cursor_timeout=False) . El argumento del filtro es un documento prototipo que todos los
resultados deben coincidir.
query={'x':1}
projection={'_id':0, 'x':1} # show x but not show _id
result=col.find(query,projection)
Borrar
Eliminar un solo documento que coincida con el filtro delete_one(filter)
https://riptutorial.com/es/home 4
>>> result = col.delete_one({'x': 1})
>>> result.deleted_count
1
https://riptutorial.com/es/home 5
Capítulo 2: Conversión entre BSON y JSON
Introducción
En muchas aplicaciones, los registros de MongoDB deben ser serializados en formato JSON. Si
sus registros tienen campos de tipo fecha, fecha y hora, objectId, binario, código, etc., se
encontrará con TypeError: not JSON serializable excepciones TypeError: not JSON serializable al
usar json.dumps . Este tema muestra cómo superar esto.
Examples
Usando json_util
json_util proporciona dos métodos de ayuda, dumps y loads , que envuelven los métodos nativos de
json y proporcionan una conversión BSON explícita desde y hacia json.
Uso simple
si el record es:
{
"_id" : ObjectId("5692a15524de1e0ce2dfcfa3"),
"title" : "Toy Story 4",
"released" : ISODate("2010-06-18T04:00:00Z")
}
{
"_id": {"$oid": "5692a15524de1e0ce2dfcfa3"},
"title" : "Toy Story 4",
"released": {"$date": 1276833600000}
}
JSONOptions
Es posible personalizar el comportamiento de los dumps través de un objeto JSONOptions . Ya hay
dos conjuntos de opciones disponibles: DEFAULT_JSON_OPTIONS y STRICT_JSON_OPTIONS .
>>> bson.json_util.DEFAULT_JSON_OPTIONS
JSONOptions(strict_number_long=False, datetime_representation=0,
https://riptutorial.com/es/home 6
strict_uuid=False, document_class=dict, tz_aware=True,
uuid_representation=PYTHON_LEGACY, unicode_decode_error_handler='strict',
tzinfo=<bson.tz_util.FixedOffset object at 0x7fc168a773d0>)
1. Modificar el objeto DEFAULT_JSON_OPTIONS . En este caso, las opciones se utilizarán para todas
las llamadas posteriores a dumps :
# using strict
dumps(record, json_options=bson.json_util.STRICT_JSON_OPTIONS)
Usando python-bsonjs
python-bsonjs no depende de PyMongo y puede ofrecer una buena mejora de rendimiento sobre
https://riptutorial.com/es/home 7
json_util :
Instalación
Uso
Para aprovechar al máximo los bsonjs, configure la base de datos para utilizar la clase
RawBSONDocument . Luego, usa los dumps para convertir los bytes sin procesar de bson a json y las
loads para convertir los bytes sin procesar de json a bson:
import pymongo
import bsonjs
from pymongo import MongoClient
from bson.raw_bson import RawBSONDocument
Si todo lo que necesita es serializar los resultados de mongo en json, es posible usar el módulo
json , siempre que defina controladores personalizados para tratar con los tipos de campos no
serializables. Una ventaja es que tiene plena capacidad para codificar campos específicos, como
la representación de fecha y hora.
Aquí hay un controlador que codifica fechas usando la representación iso y el id como una
https://riptutorial.com/es/home 8
cadena hexadecimal:
import pymongo
import json
import datetime
import bson.objectid
def my_handler(x):
if isinstance(x, datetime.datetime):
return x.isoformat()
elif isinstance(x, bson.objectid.ObjectId):
return str(x)
else:
raise TypeError(x)
db = pymongo.MongoClient().samples
record = db.movies.find_one()
# {u'_id': ObjectId('5692a15524de1e0ce2dfcfa3'), u'title': u'Toy Story 4',
# u'released': datetime.datetime(2010, 6, 18, 4, 0),}
https://riptutorial.com/es/home 9
Capítulo 3: Filtrar documentos por tiempo de
creación almacenados en ObjectId
Introducción
Incluye ejemplos de consulta de pymongo para filtrar documentos por marca de tiempo
encapsulada en ObjectId
Examples
Documentos creados en los últimos 60 segundos.
seconds = 60
Si se encuentra en una zona horaria diferente, es posible que deba desplazar datetime a UTC
seconds = 60
dummy_id = ObjectId.from_datetime(gen_time)
https://riptutorial.com/es/home 10
Creditos
S.
Capítulos Contributors
No
Empezando con
1 Community, Himavanth, Kheshav Sewnundun, tim
PyMongo
Conversión entre
2 Derlin
BSON y JSON
Filtrar documentos
por tiempo de
3 creación Sawan Vaidya
almacenados en
ObjectId
https://riptutorial.com/es/home 11