Monday, March 4, 2013

PyMongo ile çalışmak eğlenceli

http://blog.pythonisito.com/2012/01/moving-along-with-pymongo.html

Pymongo ile çalışmak inanılmaz eğlenceli.

pip install pymongo
veya
easy_install pymongo

Zaten yüklüyse güncellemek için
pip install --upgrade pymongo
veya
easy_install -U pymongo 

Yüklemede başka sorunlar yaşarsanız http://api.mongodb.org/python/current/ sayfasını inceleyin.

Hello world :

Tıpkı mongo konsolunda kullandığımız şekilde objeleri gönderebilmek harika. Nodejs dahil diğer hiç bir mongo driver'ı ile bu kadar rahat olmamıştı mongo sorguları.

import pymongo
con = pymongo.Connection()
# veya 
#from pymongo import Mongoclient
#con = MongoClient('localhost', 27017)
#bazı bağlantı parametreleri var. Şuradan görebilirsiniz : 
# http://api.mongodb.org/python/current/api/pymongo/mongo_client.html#pymongo.mongo_client.MongoClient

db = con.mytestdb
#veya 
#db = con['mytestdb']

db.testcollection.insert({"name":"hello"})
#Toplu insert işlemelrinde de objeleri array oalrak geçebilirsiniz
db.testcollection.insert([{"name":"hello"},{"name":"world"}])

#Şimdi eklediklerimizi listeleyelim
db.testcollection.find()
#Aslında bu sorgu tüm kayıtları getirmez ancak tüm kayıtları çekmeniz için size bir cursor objesi verir. 

list(db.testcollection.find())
#[{u'_id': ObjectId('51343ccd3a8c4a30eb2e01fe'), u'name': u'xyz'}, {u'_id': ObjectId('513448f73a8c4a366ad506d4'), u'name': u'hello'}, {u'_id': ObjectId('513448f73a8c4a366ad506d5'), u'name': u'world'}]

db.testcollecion.ensure_index('name')
#index oluşturma

db.testcollection.find({"name":"Hello"})

db.testcollection.find({"name":"Hello"}).explain()
#sorguyu çalıştırma mysql'deki "explain extended" gibi size sorguda indexin kullanılma durumunu verir.

db.testcollection.find({"name":"Hello"}).sort([ ('name', 1), ('otherfield', 1)])

# $set, $unset, $push, $pushAll, $addToSet, $pop,$pull, $pullAll, $rename, $bit gibi update operatorlerini rahatlıkla kullanabilirsiziniz. Bu operatorlerle ilgili detaylı bilgi http://docs.mongodb.org/manual/applications/update/#update-operators
db.testq.update({"name": "Hello"}, {"$set": {"name": "Updated"}})



pymongo tutorials : http://api.mongodb.org/python/current/tutorial.html
pymongo examples : http://api.mongodb.org/python/current/examples/index.html

No comments: