引言:
from mongoengine import *
connect('local')
class Test(Document):
name=StringField(max_length=32)
t = Test(name='Tommy.Yu')
方法 | 描述 |
DoesNotExist | None |
MultipleObjectsReturned | None |
cascade_save | Recursively saves any references / generic references on an objects 顺藤摸瓜式的保存所有被对象引用到的数据。就是保存EmbedDocument这种数据以及外键关联的数据。对象本身不做保存。如下:
|
clean | Hook for doing document level data cleaning before validation is run. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field defined by NON_FIELD_ERRORS. |
compare_indexes | Compares the indexes defined in MongoEngine with the ones existing in the database. Returns any missing/extra indexes. 对比mongoengine和数据库的索引。返回缺失/多余的索引。和ensure_index(es)配合使用。
|
delete | Delete the :class:`~mongoengine.Document` from the database. This will only take effect if the document has been previously saved. :param write_concern: Extra keyword arguments are passed down which will be used as options for the resultant ``getLastError`` command. For example, ``save(..., write_concern={w: 2, fsync: True}, ...)`` will wait until at least two servers have recorded the write and will force an fsync on the primary server. 从数据库中删除mongoengine.Document实例。 之前调用了save方法才起作用。 参数:write_concern: ... 例如, save(..., write_concern={w:2, fsync:True},...) 的实际调用的时机: 至少有两个服务器执行了写操作,将会迫使主服务器执行fsync(同步)。
|
drop_collection | Drops the entire collection associated with this :class:`~mongoengine.Document` type from the database. 删除和mongoengine.Document子类关联的表(collection)。
|
ensure_index | Ensure that the given indexes are in place. :param key_or_list: a single index key or a list of index keys (to construct a multi-field index); keys may be prefixed with a **+** or a **-** to determine the index ordering 在mongoenging中加入索引。影响的是整个类的,不是实例的。直到整个collection被删除(drop_collection被调用)都有效。
|
ensure_indexes | Checks the document meta data and ensures all the indexes exist. Global defaults can be set in the meta - see :doc:`guide/defining-documents` .. note:: You can disable automatic index creation by setting `auto_create_index` to False in the documents meta data 检查document的meta信息,并且确保所有的索引都存在于(mongoengine/db?)
实在是看不出来,看看数据库(经过测试,证实在save的时候已经创建了索引。索引对于性能的提升很夸张,看这里。):
无法确定这个函数干嘛了。 |
from_json | 将json数据转化为未保存的documeng对象。
|
list_indexes | Lists all of the indexes that should be created for given collection. It includes all the indexes from super- and sub-classes. 列举出表(collection)的所有索引。包含父类和子类的!
|
my_metaclass | Metaclass for top-level documents (i.e. documents that have their own collection in the database. |
register_delete_rule | This method registers the delete rules to apply when removing this object. |
reload | 从数据库重新加载所有属性
|
save |
源码在这里。 保存 Document到数据库. 存在则修改,否则插入。 |
select_related | Handles dereferencing of :class:`~bson.dbref.DBRef` objects to a maximum depth in order to cut down the number queries to mongodb. .. versionadded:: 0.5
|
switch_collection | Temporarily switch the collection for a document instance. Only really useful for archiving off data and calling `save()`:: user = User.objects.get(id=user_id) user.switch_collection('old-users') user.save() If you need to read from another database see :class:`~mongoengine.context_managers.switch_db` :param collection_name: The database alias to use for saving the document |
switch_db | Temporarily switch the database for a document instance. Only really useful for archiving off data and calling `save()`:: user = User.objects.get(id=user_id) user.switch_db('archive-db') user.save() If you need to read from another database see :class:`~mongoengine.context_managers.switch_db` :param db_alias: The database alias to use for saving the document |
to_dbref | Returns an instance of :class:`~bson.dbref.DBRef` useful in `__raw__` queries. 返回bson.dbref.DBRef的实例。在'__raw__'查询时比较有用(pyMongo?)
|
to_json | 转换成json对象
|
to_mongo | Return as SON data ready for use with MongoDB.
|
update | Performs an update on the :class:`~mongoengine.Document` A convenience wrapper to :meth:`~mongoengine.QuerySet.update`. Raises :class:`OperationError` if called on an object that has not yet been saved. 在mongoengine.Document类上进行更新操作。方法 mongoengine.QuerySet.update的简单包装。如果对象尚未调用save方法,会触发OperationError异常。 ps:源码。加入upsert参数是删除所有字段
更新字段需要在栏位前面加入set__,如下:
|
validate | Ensure that all fields' values are valid and that required fields are present. |
参数 |
save(..., write_concern={w: 2, fsync: True}, ...) will wait until at least two servers have recorded the write and will force an fsync on the primary server.
|