newliver

newliver的博客

他的个人主页  他的博客

[pymongo]简单数据操作

newliver  2010年08月11日 星期三 13:24 | 2379次浏览 | 0条评论

散落笔记,慢慢填充......

 

In [1]: import pymongo #导入pymongo模块

In [2]: con = pymongo.Connection() #连接本地mongodb

In [3]: c_db = con['databasename'] #连接数据库

In [4]: c_dt = c_db['table'] #连接表

In [5]: for i in c_dt.find(): #查询返回表所有值
   ...:     print i

 
{u'pet': u'duck', u'_id': ObjectId('4c61083807fe8626a1000001'), u'nickname': u'user001', u'ukey': 287436516703862790L}
{u'pet': u'cat', u'_id': ObjectId('4c61083807fe8626a1000003'), u'nickname': u'user003', u'ukey': 287436516704387080L}

In [10]: res = c_dt.find_one({'pet':'dog'}) #返回第一条符合查询的结果

In [11]: res
Out[11]:
{u'_id': ObjectId('4c61083807fe8626a1000000'),
 u'nickname': u'user000_two',
 u'pet': u'dog',
 u'ukey': 287436516703862789L}

In [12]: res = c_dt.full_name #返回表名

In [13]: res
Out[13]: u'databasename.table'

In [14]: c_dt.count() #返回统计c_dt表行数

Out[14]: 7

In [26]: c_dt.update({'ukey':123456789},{"$set":{'a':'c'}}) #更新表中ukey等于123456789,且将此结果键值等于‘a’的字段的值更新为‘c’ ,如果无此键值,mongodb会自动添加此键值,mongodb不判断数据类型,因此需要自己手动写个类型判断模块辅助数据录入

In [27]: c_dt.find_one({'nickname':'tom'})
Out[27]:
{u'_id': ObjectId('4c623c1507fe861351000000'),
 u'a': u'c',
 u'nickname': u'tom',
 u'pet': u'dog_one',
 u'ukey': 123456789}

In [28]: c_dt.update({'ukey':123456789},{"$unset":{'a':'c'}}) #当ukey=123456789时,且此返回结果中包含‘a’键值等于‘c’,删除‘a’键值(可以和$set比较,一个是赋键值,一个是移除键值)

In [29]: c_dt.find_one({'nickname':'tom'}) #返回第一条符合查询的结果
Out[29]:
{u'_id': ObjectId('4c623c1507fe861351000000'),
 u'nickname': u'tom',
 u'pet': u'dog_one',
 u'ukey': 123456789}

In [40]: a = c_dt.find({'car':'Jeep'}).limit(0) #取出所有指定条件查询结果

ln [41]: for i in a:print i
   ....:
{u'a': u'c', u'pet': u'snake', u'car': u'Jeep', u'book': u'newliver', u'ukey': 123456789, u'_id': ObjectId('4c623c1507fe861351000000'), u'nickname': u'\u5f20\u4e09'}
{u'pet': u'snake', u'car': u'Jeep', u'_id': ObjectId('4c625c9e07fe862352000000'), u'nickname': u'\u5f20\u4e09\u5f20\u4e09\u5f20', u'ukey': 1234567891}

In [42]: a = c_dt.find({'car':'Jeep'}).limit(1) #取出指定条件查询结果的第一条

In [43]: for i in a:print i
   ....:
{u'a': u'c', u'pet': u'snake', u'car': u'Jeep', u'book': u'newliver', u'ukey': 123456789, u'_id': ObjectId('4c623c1507fe861351000000'), u'nickname': u'\u5f20\u4e09'}

 

In [5]: c_dt.remove() #删除所有数据,但不删除索引

In [6]: c_dt.remove({'nickname':'user004'}) # 删除指定字段值

评论

我的评论:

发表评论

请 登录 后发表评论。还没有在Zeuux哲思注册吗?现在 注册 !

暂时没有评论

Zeuux © 2024

京ICP备05028076号