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(noteraTruei stora bokstäver):db.find({"frequencies": { "$exists": True }})objekt som objekt-id eller
ISODatemanipuleras med hjälp av pythonklasser. PyMongo använder sin egenObjectIdklass för att hantera objekt-id, medan datum använder det vanligadatetimepaketet. 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 ).