[PYTHON] Mémorandum de travail (pymongo) Partie 1. Fonctionnement de base

À propos de cet article

J'ai utilisé pymongo au travail, j'ai donc créé cet article en guise de rappel. Je vais l'écrire séparément ci-dessous.

  1. Fonctionnement de base (cette page)
  2. Qu'est-ce que MongoDB, Qu'est-ce que pymongo
  3. Méthode de connexion
  4. Méthode d'insertion
  5. Méthode de recherche
  6. Méthode de mise à jour
  7. Méthode de suppression
  8. Fonctionnement relativement pratique (bulk_write) 0. bulk_write
    Voir aussi: pymongo document Bulk_Write
  9. Je ne l'ai pas beaucoup utilisé, mais je ne veux pas le vérifier à nouveau, alors prenez-en note (je l'écrirai bientôt) 0. aggregate
    Référence: Pipeline d'agrégation de documents MongoDB

Environnement d'exploitation

OS: Mac OS
MongoDB: 4.2
Python 3.6.8 :: Anaconda, Inc.
pymongo: 3.9.0

Qu'est-ce que MongoDB?

Qu'est-ce que le pymongo?

Comme vous pouvez le deviner d'après son nom, il s'agit d'une bibliothèque MongoDB qui fonctionne sur python.

Comment utiliser pymongo

En gros, faites un mémo approximatif en vous référant à ce qui suit. Référence: document pymongo

Connexion à MongoDB

main.py


import pymongo
from pymongo import MongoClient
#Connexion avec les paramètres par défaut(host=localhost,port = 27017)
#Nous ne pouvons pas garantir que vous pouvez réellement vous connecter
#Il semble qu'une erreur se produise lors de la lecture et de l'écriture de DB comme find
client = MongoClient() #Connexion DB()
db = client.Nom de la base de données#Obtenir DB
collection = db.Nom de la collection#collection(Quelque chose comme une table)Avoir

Comment insérer

--Insérer les données au format json

main.py


#Insérer dans la collection(Passez simplement les données au format json comme argument)

#Créer des données
json_list = [{"x":i,"y":i*2,"z":i*3} for i in range(0,5)]

#Insérer un ou des documents(Semble être obsolète)
collection.insert(json_lsit) 
 
#Insérer un seul document
collection.insert_one({"x":255,"y":255,"z":255})

#Créer des données
json_list = [{"x":i,"y":i*2,"z":i*3,"a":i*4} for i in range(0,5)]
#Insérer plusieurs documents
collection.insert_many(json_list) 

Méthode de recherche

C'est une image approximative, mais il semble que la clause de sélection SQL correspond à la projection et la clause where correspond au filtre. Référence: Recherche, opération d'affichage

main.py


#Rechercher tout(Si vous ne spécifiez rien dans le filtre, vous pouvez obtenir tous les éléments)
data = collection.find(filter={})
for i in data:
    pprint.pprint(i)

#Chercher(Définissez simplement les colonnes inutiles sur 0 dans la projection
# 0,Il semble que vous puissiez activer et désactiver l'affichage avec True ou False même si ce n'est pas 1.
data = collection.find(filter={"x":{"$gt":1,  # $gt:1 ->Supérieur à 1
                                   "$lt":3}}, # $lt:3 ->Moins de 3
                        projection={"_id":0}
                       )
for i in data:
    pprint.pprint(i)

Comment supprimer

La requête conditionnelle semble être utilisable de la même manière que find

main.py


#En gros, passez simplement l'expression conditionnelle

#Supprimer un document qui correspond aux conditions
collection.delete_one({"x":1}) 

#Supprimer les documents qui correspondent aux conditions(Supprimer les documents avec x inférieur à 3)
collection.delete_many({"x":{"$lt":3}}) 

#Tous les éléments peuvent être supprimés sans spécifier d'expression conditionnelle(Juste passer un dict vide)
# collection.delete_many({}) #Supprimer les documents qui correspondent aux conditions

Comment mettre à jour

main.py


#Mettre à jour un document qui correspond aux conditions spécifiées par le filtre en fonction de la mise à jour
collection.update_one(filter, 
                        update, 
                        upsert=False
                         )
#Mettre à jour les documents qui correspondent aux conditions spécifiées par le filtre en fonction de la mise à jour
collection.update_many(filter, 
                        update, 
                        upsert=False
                         )

C'est une explication approximative, mais le fonctionnement de base est comme ça. La prochaine fois, si j'en ai envie, j'écrirai plus soigneusement bulk_write, aggregate, etc.

Recommended Posts

Mémorandum de travail (pymongo) Partie 1. Fonctionnement de base
Mémorandum de travail (pymongo) Partie 2. Fonctionnement pratique (bulk_write)
Mémorandum de base Python partie 2
Mémorandum de base Python Partie 3-A propos de l'orientation des objets-
Mémorandum d'opération Pandas
Mémorandum de base de Django
Fonctionnement de base des pandas
Fonctionnement de base des Pandas
Mémo de base Python - Partie 2
Installation de Python 3 sur Mac et vérification du fonctionnement de base Partie 1
Mémo de base Python - Partie 1
mémorandum python super basique
Application Python: Pandas Partie 1: Basique
Mémo de grammaire de base Python (1)
J'ai écrit le fonctionnement de base de Pandas dans Jupyter Lab (partie 1)
J'ai écrit le fonctionnement de base de Pandas dans Jupyter Lab (partie 2)