概述
为什么80%的码农都做不了架构师?>>>
Document实例
创建一个新的document对象,创建一个相关document类的实例,可以在字段的构造器中赋值。你可以在任何document里面的字段设置值;
[python]
- >>> page = Page(title="Test Page")
- >>> page.title
- 'Test Page'
[python]
- >>> page.title = "Example Page"
- >>> page.title
- 'Example Page'
mongoengine在有效保存的时候会追踪document里面的变化。保存数据到数据库中,使用save() 方法。如果该document在数据库里面不存在,则会创建相应的document,如果已存在,则会应该用document中的更改:
[python]
- >>> page = Page(title="Test Page")
- >>> page.save() # Performs an insert
- >>> page.title = "My Page"
- >>> page.save() # Performs an atomic set on the title field.
如果你的document里面包含 ReferenceField 或者GenericReferenceField 对象,默认情况下使用save() 方法时会自动应用这些引用的document的变化,如果你不需要这个特性,可以把cascade 设置为 False。
删除Document
删除document的时候,使用delete() 方法。它只在这个document存在的时候有效。
Document ID
数据库里面的没一个Document都有一个唯一的ID。这个可以通过Document的id属性来访问。通常,这个ID是由数据库在数据保存的时候自动生成的,这意味着你只能访问那些已经保存了的document的id。
[python]
- >>> page = Page(title="Test Page")
- >>> page.id
- >>> page.save()
- >>> page.id
- ObjectId('123456789abcdef000000000')
或者,你可以通过在字段构造器里面设置 primary_key=True 来指定自己的一个字段来作为主键。这种情况下,mongoengine会使用这个指定的字段作为id 。事实上,id只是你指定的主键字段的别名,你仍然可以把id 当作主键来使用:
[python]
- >>> class User(Document):
- ... email = StringField(primary_key=True)
- ... name = StringField()
- ...
- >>> bob = User(email='bob@example.com', name='Bob')
- >>> bob.save()
- >>> bob.id == bob.email == 'bob@example.com'
- True
[python]
- >>> page = Page(title="Another Test Page")
- >>> page.save()
- >>> page.id == page.pk
转载于:https://my.oschina.net/leaf0s/blog/129967
最后
以上就是犹豫萝莉为你收集整理的MongoEngine文档翻译__新手教程(三)Document实例的全部内容,希望文章能够帮你解决MongoEngine文档翻译__新手教程(三)Document实例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复