最小pymongo对象包装器

mongo的Python项目详细描述


最简单的pymongo对象包装器

文档

最小文档模型:

>>> from mongo import Document, Index
>>> class Doc(Document):
...     __database__ = 'mongo_test'  # database name

所有允许的设置:

>>> class Doc(Document):
...     __connection__ = {'host': 'localhost', 'port': 27017}
...     #__auth__ = ('username', 'password')
...     __database__ = 'mongo_test' # database name
...     __collection__ = 'test'     # collection name
...     __safe__ = True             # enable safe insert mode
...
...     __indexes__ = [
...         Index('number', unique=True, sparse=True),
...     ]

清除集合

>>> t = Doc.remove()
>>> Doc.count()
0

创建文档

>>> doc = Doc(foo='bar')
>>> doc['number'] = 10
>>> doc.save()
>>> '_id' in doc
True

取回

按id获取:

>>> doc1 = Doc.get_by_id(doc.id)
>>> doc1 == doc
True

找到一个:

>>> doc2 = Doc.find_one({'number': 10})
>>> doc2 == doc
True

查找:

>>> doc3 = Doc.find({'number': 10}).limit(1)[0]
>>> doc3 == doc
True

获取或创建:

>>> doc4, new = Doc.get_or_create({'number': 10}, defaults={'foo': 'bar'})
>>> new
False
>>> doc4 == doc
True

更新

更新筛选的文档:

>>> t = Doc.update({'number': 10}, {'$set': {'text': 'foo'}})
>>> doc = Doc.find_one({'number': 10})
>>> doc['text']
u'foo'

仅保存一些字段:

>>> doc['text'] = u'bar'
>>> doc['number'] = 11
>>> doc.save_fields('text')
>>> doc = Doc.find_one({'number': 10})
>>> doc['text'], doc['number']
(u'bar', 10)

仅更新部分字段:

>>> doc.atomic_update({'$inc': {'number': 2}})
>>> doc = Doc.find_one({'text': 'bar'})
>>> doc['number']
12

计数

>>> Doc().save()
>>> Doc.count()
2
>>> Doc.find({'number': 12}).count()
1

删除

删除单个文档:

>>> t = doc.delete()
>>> Doc.find_one({'number': 12})

删除一些文档:

>>> t = Doc.remove({'number': 10})

删除所有文档:

>>> t = Doc.remove()

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java当我点击MainActivity中的按钮以显示其他活动时,它不起作用   java游戏!框架:在请求之间获取控制器的组件/字段/对象   JavaBlackBerry:调用计算器并检索值?   java Struts2 jQuery插件提交按钮   java无法将更新的画布绘制到活动   java如何将Gson值放入HashMap   使用截取时出现java错误:RecyclerView:未连接适配器;跳过布局   java组织。冬眠HibernateException:在Hibernate搜索中编制索引时出错(在事务完成之前)   java Swagger服务器存根生成工作流   java JInternalFrame底部阴影问题   java nio缓冲区类中limit()的用法是什么   java水平回收器视图内部选项卡布局   java Maven无法找到依赖项   java如何管理不同应用程序实例的权限文件?