MongoDB
Python Driver
Sök…
Syntax
- mongodb: // [användarnamn: lösenord @] server1 [: port1] [, värd2 [: port2] ... [, hostN [: portN]]] [? / [databas] [alternativ]]
parametrar
Parameter | Detalj |
---|---|
hostX | Valfri. Du kan ange så många värdar som behövs. Du skulle ange flera värdar, till exempel för anslutningar till replikuppsättningar. |
: portX | Valfri. Standardvärdet är: 27017 om det inte anges. |
databas | Valfri. Namnet på databasen som ska verifieras om anslutningssträngen innehåller autentiseringsuppgifterIf / databas inte anges och anslutningssträngen innehåller referenser kommer drivrutinen att autentisera till administraturdatabasen. |
?alternativ | Anslutningsspecifika alternativ |
Anslut till MongoDB med 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-frågor
När du har fått ett collection
använder frågor samma syntax som i mongoskalet. Några små skillnader är:
varje tangent måste bifogas inom parentes. Till exempel:
db.find({frequencies: {$exists: true}})
blir i
pymongo
(noteraTrue
i stora bokstäver):db.find({"frequencies": { "$exists": True }})
objekt som objekt-id eller
ISODate
manipuleras med hjälp av pythonklasser. PyMongo använder sin egenObjectId
klass för att hantera objekt-id, medan datum använder det vanligadatetime
paketet. Om du till exempel vill fråga alla händelser mellan 2010 och 2011 kan du göra: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 } }):
Uppdatera alla dokument i en samling med PyMongo
Låt oss säga att du måste lägga till ett fält till varje dokument i en samling.
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
metoden returnerar en Cursor
, där du kan lätt iterera över med hjälp av for in
syntax. Sedan kallar vi update
, specificerar _id
och att vi lägger till ett fält ( $set
). Parametrarna upsert
och multi
kommer från mongodb ( se här för mer info ).