pymongo 的基本操作

连接和基本表操作

>>> import pymongo
>>> conn = pymongo.MongoReplicaSetClient('xxxx:27017', replicaSet='mongolog')  # 建立连接Mongo Instance
>>> db = conn.dbname  # 连接到数据库
>>> items = db.items  # 使用items 表
>>> items.insert({"ItemName": "Books", "qty": 3})   # 向Items 写入数据
ObjectId('54981a6f24a1dd06708d3e40')
>>> items.insert({"ItemName": "music", "Artist":"Jackson", "price": "5 USD"})
ObjectId('54981ab524a1dd06708d3e41')
>>> for item in items.find():  # 查询Items 所有结果
...     print(item)
...
{u'_id': ObjectId('54981a6f24a1dd06708d3e40'), u'ItemName': u'Books', u'qty': 3}
{u'price': u'5 USD', u'_id': ObjectId('54981ab524a1dd06708d3e41'), u'ItemName': u'music', u'Artist': u'Jackson'}

Update

>>> items.update({"ItemName": "Books"}, {"qty": 10, "Name": "The story"})     # 修改后整行记录为{"qty": 10, "Name": "The story"}
>>> items.insert({"ItemName": "Books", "qty": 3})
>>> items.update({"ItemName": "Books"}, {"$set":{"qty": 10, "Name": "The story"}})   # 修改后整行记录为{"ItemName": "Books", "qty": 10, "Name": "The story"}
>>> items.update({"ItemName": "ticket"}, {"$set": {"qty": 193}}, upsert=True)
>>> items.update({"ItemName": "ticket"},  {"$set": {"qty": 329}}, multi= True)

关于upsert, multi 参考 MongoDB: update 操作

Find

>>> optab.find({'c1': 'v1', 'c2': 'v2', 'c3': {'$gt': 100}})  # 不要忘记 '$'
>>> optab.find({..}, sort=[("col1", -1), ("col2", 1)])
>>> optab.find_one(sort=[('col1',-1)])   # 找出col1 最大的那一行

Command

>>> admindb.command('commandname', opt1='v1', opt2='v2')
>>> opts = {'fromhost': from_host, 'fromdb': from_db, 'todb': to_db, 'slaveOk': True}
>>> admindb.command('copydb', **opts)
posted @ 2014-12-22 21:24  zhifan  阅读(530)  评论(0编辑  收藏  举报