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 le True en majuscule):

    db.find({"frequencies": { "$exists": True }})
    
  • Les objets tels que les identificateurs d'objet ou ISODate sont manipulés à l'aide de classes python. PyMongo utilise sa propre classe ObjectId pour traiter les identifiants d'objet, tandis que les dates utilisent le package standard datetime . 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 ).



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow