PyMongo Tutorial
Iniziare con PyMongo
Ricerca…
Osservazioni
Questa sezione fornisce una panoramica di cosa sia pymongo e perché uno sviluppatore potrebbe volerlo utilizzare.
Dovrebbe anche menzionare tutti i soggetti di grandi dimensioni all'interno di pymongo e collegarsi agli argomenti correlati. Poiché la documentazione di pymongo è nuova, potrebbe essere necessario creare versioni iniziali di tali argomenti correlati.
Installazione o configurazione
Istruzioni dettagliate su come installare o installare pymongo.
Installazione con Pip
Per installare pymongo per la prima volta:
pip install pymongo
Installazione di una versione specifica di pymongo:
Dove XXX è la versione da installare
pip install pymongo==XXX
Aggiornamento del pymongo esistente:
pip install --upgrade pymongo
Installazione con easy_install
Per installare pymongo per la prima volta:
python -m easy_install pymongo
Aggiornamento del pymongo esistente:
python -m easy_install -U pymongo
Ciao mondo
PyMongo è un driver Python nativo per MongoDB.
Installa PyMongo
pip install pymongo
Crea una connessione
Utilizzare MongoClient per creare una connessione. Per impostazione predefinita, MongoClient esegue l'istanza MongoDB in esecuzione su localhost:27017
se non specificato.
from pymongo import MongoClient
client = MongoClient()
Accedi agli oggetti del database
La classe Database di PyMongo rappresenta il costrutto del database in MongoDB. I database contengono gruppi di raccolte logicamente correlate.
db = client.mydb
Accedere agli oggetti di raccolta
La classe Collection di PyMongo rappresenta il costrutto di raccolta in MongoDB. Le raccolte contengono gruppi di documenti correlati.
col = db.mycollection
MongoDB crea implicitamente nuovi database e raccolte al primo utilizzo.
Funzionamento di base CRUD
MongoDB memorizza i record di dati come documenti BSON . BSON è la rappresentazione binaria di JSON.
$ python
>>> from pymongo import MongoClient
>>> client = MongoClient()
>>> col = client.mydb.test
Creare
Inserisci un singolo documento insert_one(document)
>>> result = col.insert_one({'x':1})
>>> result.inserted_id
ObjectId('583c16b9dc32d44b6e93cd9b')
Inserire più documenti insert_many(documents)
>>> result = col.insert_many([{'x': 2}, {'x': 3}])
>>> result.inserted_ids
[ObjectId('583c17e7dc32d44b6e93cd9c'), ObjectId('583c17e7dc32d44b6e93cd9d')]
Sostituire un singolo documento corrispondente al filtro replace_one(filter, replacement, upsert=False)
. (per inserire un nuovo documento se il documento corrispondente non esiste, usa upsert=True
)
>>> result = col.replace_one({'x': 1}, {'y': 1})
>>> result.matched_count
1
>>> result.modified_count
1
Aggiornare
Aggiorna un singolo documento corrispondente al filtro update_one(filter, update, upsert=False)
>>> result = col.update_one({'x': 1}, {'x': 3})
Aggiorna uno o più documenti che corrispondono al filtro update_many(filter, update, upsert=False)
>>> result = col.update_many({'x': 1}, {'x': 3})
Leggere
Cerca il database find(filter=None, projection=None, skip=0, limit=0, no_cursor_timeout=False)
. L'argomento del filtro è un documento prototipo che tutti i risultati devono corrispondere.
>>> result = col.find({'x': 1})
Ottieni un singolo documento dal database find_one(filter=None)
>>> result = col.find_one()
Query con proiezione
query={'x':1}
projection={'_id':0, 'x':1} # show x but not show _id
result=col.find(query,projection)
Elimina
Elimina un singolo documento corrispondente al filtro delete_one(filter)
>>> result = col.delete_one({'x': 1})
>>> result.deleted_count
1
Elimina uno o più documenti corrispondenti al filtro delete_many(filter)
>>> result = col.delete_many({'x': 1})
>>> result.deleted_count
3
PyMongo fornisce anche le funzioni find_one_and_delete()
, find_one_and_update()
e find_one_and_replace()
.