MongoDB                
            Driver Python
        
        
            
    Ricerca…
Sintassi
- MongoDB: // [username: password @] host1 [: port1] [, host2 [: port2], ... [, HostN [: portN]]] [/? [database] [opzioni]]
Parametri
| Parametro | Dettaglio | 
|---|---|
| hostX | Opzionale. È possibile specificare tutti gli host necessari. Dovresti specificare più host, ad esempio, per le connessioni ai set di repliche. | 
| : portX | Opzionale. Il valore predefinito è: 27017 se non specificato. | 
| Banca dati | Opzionale. Il nome del database per l'autenticazione se la stringa di connessione include credentialsIf / database di autenticazione non è specificato e la stringa di connessione include le credenziali, il driver verrà autenticato nel database di amministrazione. | 
| ?opzioni | Opzioni specifiche di connessione | 
Connettiti a MongoDB usando pymongo
from pymongo import MongoClient
uri = "mongodb://localhost:27017/"
client = MongoClient(uri)
db = client['test_db']
# or
# db = client.test_db
# collection = db['test_collection']
# or
collection = db.test_collection
collection.save({"hello":"world"})
print collection.find_one()
Query PyMongo
 Una volta ottenuto un oggetto di collection , le query utilizzano la stessa sintassi della shell di mongo. Alcune piccole differenze sono: 
- ogni chiave deve essere racchiusa tra parentesi. Per esempio: - db.find({frequencies: {$exists: true}})- diventa in - pymongo(nota il- Truein maiuscolo):- db.find({"frequencies": { "$exists": True }})
- oggetti come ID oggetto o - ISODatevengono manipolati usando le classi python. PyMongo utilizza la propria classe- ObjectIdper gestire gli ID oggetto, mentre le date utilizzano il pacchetto- datetimestandard. Ad esempio, se desideri eseguire una query su tutti gli eventi tra il 2010 e il 2011, puoi eseguire:- from datetime import datetime date_from = datetime(2010, 1, 1) date_to = datetime(2011, 1, 1) db.find({ "date": { "$gte": date_from, "$lt": date_to } }):
Aggiorna tutti i documenti in una raccolta usando PyMongo
Diciamo che è necessario aggiungere un campo a ogni documento in una raccolta.
import pymongo
client = pymongo.MongoClient('localhost', 27017)
db = client.mydb.mycollection
for doc in db.find():
   db.update(
       {'_id': doc['_id']}, 
       {'$set': {'newField': 10} }, upsert=False, multi=False)
 Il metodo find restituisce un Cursor , sul quale è possibile eseguire facilmente l'iterazione utilizzando la sintassi for in . Quindi, chiamiamo il metodo di update , specificando _id e aggiungendo un campo ( $set ). I parametri upsert e multi provengono da mongodb ( vedi qui per maggiori informazioni ).