Zoeken…


Syntaxis

  • MongoDB: // [gebruikersnaam: wachtwoord @] host1 [: port1] [, host2 [: port2], ... [, hostN [: portN]]] [/? [databank] [opties]]

parameters

Parameter Detail
hostX Optioneel. U kunt zoveel hosts opgeven als nodig is. U zou bijvoorbeeld meerdere hosts opgeven voor verbindingen met replicasets.
: portX Optioneel. De standaardwaarde is: 27017 indien niet opgegeven.
databank Optioneel. De naam van de te authenticeren database als de verbindingsreeks verificatiegegevens bevat Als / database niet is opgegeven en de verbindingsreeks identificatiegegevens bevat, wordt het stuurprogramma geverifieerd bij de beheerdersdatabase.
? opties Verbindingsspecifieke opties

Maak verbinding met MongoDB met behulp van 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-vragen

Nadat u een collection , gebruiken query's dezelfde syntaxis als in de mongo-shell. Enkele kleine verschillen zijn:

  • elke sleutel moet tussen haakjes staan. Bijvoorbeeld:

    db.find({frequencies: {$exists: true}})
    

    wordt in pymongo (let op de True in hoofdletters):

    db.find({"frequencies": { "$exists": True }})
    
  • objecten zoals object-ID's of ISODate worden gemanipuleerd met behulp van python-klassen. PyMongo gebruikt zijn eigen ObjectId klasse om object-ID's af te handelen, terwijl datums het standaard datetime pakket gebruiken. Als u bijvoorbeeld alle gebeurtenissen tussen 2010 en 2011 wilt doorzoeken, kunt u het volgende doen:

     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 } }):
    

Werk alle documenten in een verzameling bij met PyMongo

Stel dat u een veld aan elk document in een verzameling moet toevoegen.

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)

De find retourneert een Cursor , waar je gemakkelijk herhalen boven het gebruik van de for in syntax. Vervolgens roepen we de update , waarbij we de _id en dat we een veld toevoegen ( $set ). De parameters upsert en multi komen van mongodb ( zie hier voor meer info ).



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow