MongoDB
Pilote Python
Recherche…
Syntaxe
- mongodb: // [nom d'utilisateur: mot de passe @] host1 [: port1] [, host2 [: port2], ... [, hostN [: portN]]] [/ [base de données] [? options]]
Paramètres
| Paramètre | Détail |
|---|---|
| hostX | Optionnel. Vous pouvez spécifier autant d'hôtes que nécessaire. Vous devez spécifier plusieurs hôtes, par exemple, pour les connexions aux jeux de réplicas. |
| : portX | Optionnel. La valeur par défaut est: 27017 si non spécifié. |
| base de données | Optionnel. Le nom de la base de données à authentifier si la chaîne de connexion inclut des informations d'authentification. Si / database n'est pas spécifié et que la chaîne de connexion inclut des informations d'identification, le pilote s'authentifiera dans la base de données admin. |
| ? options | Options spécifiques à la connexion |
Connectez-vous à MongoDB en utilisant 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()
PyMongo interroge
Une fois que vous avez un objet de collection , les requêtes utilisent la même syntaxe que dans le shell mongo. Quelques légères différences sont:
chaque clé doit être entre crochets. Par exemple:
db.find({frequencies: {$exists: true}})devient en
pymongo(notez leTrueen majuscule):db.find({"frequencies": { "$exists": True }})Les objets tels que les identificateurs d'objet ou
ISODatesont manipulés à l'aide de classes python. PyMongo utilise sa propre classeObjectIdpour traiter les identifiants d'objet, tandis que les dates utilisent le package standarddatetime. Par exemple, si vous souhaitez interroger tous les événements entre 2010 et 2011, vous pouvez effectuer les opérations suivantes: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 } }):
Mettre à jour tous les documents d'une collection en utilisant PyMongo
Disons que vous devez ajouter un champ à chaque document d'une collection.
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)
La méthode find renvoie un Cursor sur lequel vous pouvez facilement parcourir le syntaxe de for in . Ensuite, nous appelons la méthode update , en spécifiant le _id et en ajoutant un champ ( $set ). Les paramètres upsert et multi proviennent de mongodb ( voir ici pour plus d'informations ).