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.
OS: Mac OS
MongoDB: 4.2
Python 3.6.8 :: Anaconda, Inc.
pymongo: 3.9.0
Comme vous pouvez le deviner d'après son nom, il s'agit d'une bibliothèque MongoDB qui fonctionne sur python.
En gros, faites un mémo approximatif en vous référant à ce qui suit. Référence: document pymongo
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
--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)
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)
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
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