PyMongo Zelfstudie
Aan de slag met PyMongo
Zoeken…
Opmerkingen
Deze sectie geeft een overzicht van wat pymongo is en waarom een ontwikkelaar het misschien wil gebruiken.
Het moet ook alle grote onderwerpen binnen pymongo vermelden en naar de gerelateerde onderwerpen verwijzen. Omdat de documentatie voor pymongo nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.
Installatie of instellingen
Gedetailleerde instructies voor het instellen of installeren van pymongo.
Installeren met Pip
Om pymongo voor de eerste keer te installeren:
pip install pymongo
Een specifieke versie van pymongo installeren:
Waarbij XXX de te installeren versie is
pip install pymongo==XXX
Bestaande pymongo upgraden:
pip install --upgrade pymongo
Installeren met easy_install
Om pymongo voor de eerste keer te installeren:
python -m easy_install pymongo
Bestaande pymongo upgraden:
python -m easy_install -U pymongo
Hallo Wereld
PyMongo is een native Python-stuurprogramma voor MongoDB.
Installeer PyMongo
pip install pymongo
Maak een verbinding
Gebruik MongoClient om een verbinding te maken. MongoClient is standaard ingesteld op MongoDB-instantie die wordt uitgevoerd op localhost:27017
indien niet opgegeven.
from pymongo import MongoClient
client = MongoClient()
Toegang tot databaseobjecten
De klasse Database van PyMongo vertegenwoordigt de databaseconstructie in MongoDB. Databases bevatten groepen logisch gerelateerde collecties.
db = client.mydb
Toegang tot verzamelobjecten
De klasse Collection van PyMongo vertegenwoordigt het verzamelconstructie in MongoDB. Collecties bevatten groepen gerelateerde documenten.
col = db.mycollection
MongoDB creëert impliciet nieuwe databases en collecties bij het eerste gebruik.
Basis CRUD-bewerking
MongoDB slaat gegevensrecords op als BSON- documenten . BSON is de binaire weergave van JSON.
$ python
>>> from pymongo import MongoClient
>>> client = MongoClient()
>>> col = client.mydb.test
creëren
Voeg een enkel document in insert_one(document)
>>> result = col.insert_one({'x':1})
>>> result.inserted_id
ObjectId('583c16b9dc32d44b6e93cd9b')
Meerdere documenten invoegen insert_many(documents)
>>> result = col.insert_many([{'x': 2}, {'x': 3}])
>>> result.inserted_ids
[ObjectId('583c17e7dc32d44b6e93cd9c'), ObjectId('583c17e7dc32d44b6e93cd9d')]
Vervang een enkel document dat overeenkomt met het filter replace_one(filter, replacement, upsert=False)
. (gebruik upsert=True
om een nieuw document in te voegen als het overeenkomende document niet bestaat)
>>> result = col.replace_one({'x': 1}, {'y': 1})
>>> result.matched_count
1
>>> result.modified_count
1
Bijwerken
Werk een enkel document bij dat overeenkomt met het filter update_one(filter, update, upsert=False)
>>> result = col.update_one({'x': 1}, {'x': 3})
Werk een of meer documenten bij die overeenkomen met het filter update_many(filter, update, upsert=False)
>>> result = col.update_many({'x': 1}, {'x': 3})
Lezen
Zoek in de database find(filter=None, projection=None, skip=0, limit=0, no_cursor_timeout=False)
. Het filter argument is een prototype document dat alle resultaten moeten overeenkomen.
>>> result = col.find({'x': 1})
Haal een enkel document uit de database find_one(filter=None)
>>> result = col.find_one()
Vraag Met Projectie
query={'x':1}
projection={'_id':0, 'x':1} # show x but not show _id
result=col.find(query,projection)
Delete
Verwijder een enkel document dat overeenkomt met het filter delete_one(filter)
>>> result = col.delete_one({'x': 1})
>>> result.deleted_count
1
Verwijder een of meer documenten die overeenkomen met het filter delete_many(filter)
>>> result = col.delete_many({'x': 1})
>>> result.deleted_count
3
PyMongo biedt ook de functie find_one_and_delete()
, find_one_and_update()
en find_one_and_replace()
.