Recherche…


Remarques

Cette section fournit une vue d'ensemble de ce qu'est pymongo et pourquoi un développeur peut vouloir l'utiliser.

Il devrait également mentionner tous les grands sujets au sein de pymongo, et établir un lien avec les sujets connexes. La documentation de pymongo étant nouvelle, vous devrez peut-être créer des versions initiales de ces rubriques connexes.

Installation ou configuration

Instructions détaillées sur la mise en place ou l'installation de pymongo.

  • Installation avec Pip

    • Pour installer pymongo pour la première fois:

      pip install pymongo

    • Installer une version spécifique de pymongo:

      Où XXX est la version à installer

      pip install pymongo==XXX

    • Mise à niveau du pymongo existant:

      pip install --upgrade pymongo

  • Installation avec easy_install

    • Pour installer pymongo pour la première fois:

      python -m easy_install pymongo

    • Mise à niveau du pymongo existant:

      python -m easy_install -U pymongo

Bonjour le monde

PyMongo est un pilote Python natif pour MongoDB.

Installer PyMongo

pip install pymongo

Créer une connexion

Utilisez MongoClient pour créer une connexion. MongoClient utilise par défaut l'instance MongoDB s'exécutant sur localhost:27017 si elle n'est pas spécifiée.

from pymongo import MongoClient
client = MongoClient() 

Accéder aux objets de base de données

La classe Database de PyMongo représente la construction de base de données dans MongoDB. Les bases de données contiennent des groupes de collections liées de manière logique.

db = client.mydb

Accéder aux objets de collection

La classe Collection de PyMongo représente la construction de collection dans MongoDB. Les collections contiennent des groupes de documents connexes.

col = db.mycollection

MongoDB crée implicitement de nouvelles bases de données et collections lors de la première utilisation.

Fonctionnement de base du CRUD

MongoDB stocke les enregistrements de données sous forme de documents BSON . BSON est la représentation binaire de JSON.

$ python
>>> from pymongo import MongoClient
>>> client = MongoClient()
>>> col = client.mydb.test

Créer

Insérer un seul document insert_one(document)

>>> result = col.insert_one({'x':1})
>>> result.inserted_id
ObjectId('583c16b9dc32d44b6e93cd9b')

Insérer plusieurs documents insert_many(documents)

>>> result = col.insert_many([{'x': 2}, {'x': 3}])
>>> result.inserted_ids
[ObjectId('583c17e7dc32d44b6e93cd9c'), ObjectId('583c17e7dc32d44b6e93cd9d')]

Remplacez un seul document correspondant au filtre replace_one(filter, replacement, upsert=False) . (pour insérer un nouveau document si le document correspondant n'existe pas, utilisez upsert=True )

>>> result = col.replace_one({'x': 1}, {'y': 1})
>>> result.matched_count
1
>>> result.modified_count
1

Mettre à jour

Mettre à jour un seul document correspondant au filtre update_one(filter, update, upsert=False)

>>> result = col.update_one({'x': 1}, {'x': 3})

Mettre à jour un ou plusieurs documents correspondant au filtre update_many(filter, update, upsert=False)

>>> result = col.update_many({'x': 1}, {'x': 3})

Lis

Interroger la base de données find(filter=None, projection=None, skip=0, limit=0, no_cursor_timeout=False) . L'argument de filtre est un document prototype auquel tous les résultats doivent correspondre.

>>> result = col.find({'x': 1})

Obtenir un document unique à partir de la base de données find_one(filter=None)

>>> result = col.find_one()

Interroger avec projection

query={'x':1}
projection={'_id':0, 'x':1} # show x but not show _id
result=col.find(query,projection)

Effacer

Supprimer un seul document correspondant au filtre delete_one(filter)

>>> result = col.delete_one({'x': 1})
>>> result.deleted_count
1

Supprimer un ou plusieurs documents correspondant au filtre delete_many(filter)

>>> result = col.delete_many({'x': 1})
>>> result.deleted_count
3

PyMongo fournit également la fonctionnalité find_one_and_delete() , find_one_and_update() et find_one_and_replace() .



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