2013-01-22 13 views
6

Sulla riga di comando, questo funziona:Come si usa pymongo per connettersi ad una collezione di documenti esistente/db?

$ mongo 
> show dbs 
mydatabase 1.0GB 

Tuttavia, questo non lo fa:

$ python  
>>> import pymongo 
>>> connection = pymongo.MongoClient() 
>>> connection.mydatabase.find() 

ho letto attraverso documenti qui:

http://api.mongodb.org/python/current/tutorial.html

Ma non capisco come a ...

  1. connettersi a un database esistente (utilizzando pymongo)
  2. interrogare quali database esistono nella connessione mongodb.

Perché non riesco ad accedere al mio database?

+1

Eh, qualcuno ha recentemente urtato questo Q non mi ricordo nemmeno chiedere. Questa è stata la mia prima domanda mongo, apparentemente. Ora faccio esattamente questo un miliardo di volte al giorno senza nemmeno accorgermene una volta non l'ho capito ... – Mittenchops

risposta

1

show dbs e find() sono comandi completamente diversi in quanto tali non è possibile confrontare i due.

connection.mydatabase.find() 

effettivamente fare nulla perché non è possibile find() documenti a livello di database. Probabilmente si sta cercando:

cursor = connection.mydatabase.mycol.find() 

Io non sono un programmatore Python, ma qualcosa del genere e il foreach il cursor var per ottenere i dati.

Come nota aggiuntiva, è necessario sostituire mycol con il nome della raccolta che contiene i documenti.

Per quanto riguarda l'interrogazione per un elenco delle banche dati si può fare qualcosa di simile:

databases = connection.mydatabase.command({'listDatabases': 1}); 

Come mostrato qui: http://docs.mongodb.org/manual/reference/command/listDatabases/#listDatabases

Tuttavia ancora una volta io non sono un programmatore Python, ma questo dovrebbe iniziare.

2

Sulla riga di comando python:

import pymongo 
from pymongo import MongoClient 
connection = MongoClient() ## connects by default to db at localhost:27017 
connection.database_names() ## python binding equivalent to show dbs. 

Anche se non sembra essere una ricchezza di esempi, sembra che le associazioni sono abbastanza completa entro il Python Driver API Documentation.

Problemi correlati