mongoEngineのdocumentオブジェクトの概要
14281 ワード
引用:
方法
説明
DoesNotExist
None
MultipleObjectsReturned
None
cascade_save
Recursively saves any references/generic references on an objects順藤摸瓜式は、オブジェクトに参照されたすべてのデータを保存します.つまり、EmbeddDocumentというデータと外部キーに関連付けられたデータを保存します.オブジェクト自体は保存されません.次のようになります.
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},…)の実際の呼び出しのタイミング:少なくとも2つのサーバが書き込み操作を実行し、メインサーバにfsync(同期)を実行させます.
drop_collection
Drops the entire collection associated with this :class:`~mongoengine.Document` type from the database. 削除とmongoengine.Documentサブクラスに関連付けられたテーブル.
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をデータベースに保存する.存在する場合は変更します.そうでない場合は挿入します.
パラメータ force_Insert–データが存在するかどうかにかかわらず、強制的に挿入します.デフォルトはFalse validate–入力データを検証するかどうか、デフォルトはTrueです. clean–cleanメソッドを呼び出すかどうかは、validateパラメータがTrueである必要があります.デフォルトはTrueです. write_concern – Extra keyword arguments are passed down to save() OR insert() 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. cascade–カスケード保存するかどうか.で、meta__(class Meta)でこの属性を設定し、デフォルトはNone. cascade_kwargs–オプションで、カスケード保存関数(cascade_save)の辞書型パラメータに渡されます.必要なcascadeパラメータはTrueで、デフォルトはNoneです. _refs – A list of processed references used in cascading saves.カスケード保存関数に渡される(処理済み?)参照リスト.デフォルトはNone. save_condition – only perform save if matching record in db satisfies condition(s) (e.g., version number).条件が一致する場合のみ、データを保存します.デフォルトはNone.
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. ここにいるよDocumentクラスで更新操作を行います.方法QuerySet.updateのシンプルなパッケージ.オブジェクトがsaveメソッドを呼び出していない場合、OperationError例外がトリガーされます.ps: ソースコード .upsertパラメータを追加すると、すべてのフィールドが削除されます.
フィールドを更新するには、カラムの前にset__を追加する必要があります.次のようになります.
validate
Ensure that all fields' values are valid and that required fields are present.
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順藤摸瓜式は、オブジェクトに参照されたすべてのデータを保存します.つまり、EmbeddDocumentというデータと外部キーに関連付けられたデータを保存します.オブジェクト自体は保存されません.次のようになります.
>>> t2= Test(name='Joe')
>>> t2.cascade_save()
>>> t2.reload().to_json()
Traceback (most recent call last):
File "<pyshell#121>", line 1, in <module>
t2.reload().to_json()
File "build\bdist.win-amd64\egg\mongoengine\document.py", line 457, in reload
raise self.DoesNotExist("Document does not exist")
DoesNotExist: Document does not exist
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)を組み合わせて使用します.
>>> t.ensure_index('name')
u'name_1'
>>> t.compare_indexes()
{'extra': [[(u'name', 1)]], 'missing': []}
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},…)の実際の呼び出しのタイミング:少なくとも2つのサーバが書き込み操作を実行し、メインサーバにfsync(同期)を実行させます.
>>> t2.delete()
>>> t2.to_json()
'{"_id": {"$oid": "54b71f7a4878c414e814d197"}, "name": "Tommy.yu"}'
>>> t3=t2.reload()
Traceback (most recent call last):
File "<pyshell#93>", line 1, in <module>
t3=t2.reload()
File "build\bdist.win-amd64\egg\mongoengine\document.py", line 465, in reload
raise self.DoesNotExist("Document does not exist")
DoesNotExist: Document does not exist
drop_collection
Drops the entire collection associated with this :class:`~mongoengine.Document` type from the database. 削除とmongoengine.Documentサブクラスに関連付けられたテーブル.
>>> t.drop_collection()
>>> Test.objects.all()
[]
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が呼び出されるまで)有効です.
>>> t3=Test(name='John')
>>> t3.compare_indexes()
{'extra': [], 'missing': []}
>>> t3.ensure_index('name')
u'name_1'
>>> t3.compare_indexes()
{'extra': [[(u'name', 1)]], 'missing': []}
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?)
>>> class Test2(Document):
name=StringField(max_length=100)
url =StringField(max_length=100)
meta={'indexes':['name','url']}
>>> t2=Test2(name='Tommy.Yu', url='http://www.cnblogs.com/Tommy-Yu')
>>> t2.ensure_indexes()
>>> t2.compare_indexes()
{'extra': [], 'missing': []}
>>> t2.list_indexes()
[[('name', 1)], [('url', 1)], [(u'_id', 1)]]
>>> t2.drop_collection()
>>> t2=Test2(name='Tommy.Yu', url='http://www.cnblogs.com/Tommy-Yu')
>>> t2.list_indexes()
[[('name', 1)], [('url', 1)], [(u'_id', 1)]]
本当に見えません.データベースを見てください(saveの時にインデックスが作成されたことがテストで確認されました.インデックスはパフォーマンスの向上に誇張されています.ここを見てください):
> db.test2.getIndexes()
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "local.test2"
},
{
"v" : 1,
"key" : {
"name" : 1
},
"name" : "name_1",
"ns" : "local.test2",
"background" : false,
"dropDups" : false
},
{
"v" : 1,
"key" : {
"url" : 1
},
"name" : "url_1",
"ns" : "local.test2",
"background" : false,
"dropDups" : false
}
]
この関数が何をしているのか分からない.
from_json
jsonデータを保存されていないdocumengオブジェクトに変換します.
>>> b= t.from_json('{"name":"joe"}')
>>> t.to_json()
'{"_id": {"$oid": "54b6353c4878c414e814d195"}, "name": "Tommy.Yu"}'
>>> b.to_json()
'{"name": "joe"}'
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)のすべてのインデックスを列挙します.親と子を含む!
>>> t.list_indexes()
[[(u'_id', 1)]]
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
データベースからすべてのプロパティを再ロード
>>> a=t.reload()
>>> a is t
False
>>> a
<Test: Test object>
>>> a.to_json()
'{"_id": {"$oid": "54b6353c4878c414e814d195"}, "name": "Tommy.Yu"}'
save
>>>u.save()
<Test: Test object>
ソースコードはここです.Documentをデータベースに保存する.存在する場合は変更します.そうでない場合は挿入します.
パラメータ
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.
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
>>> t.select_related()
<Test: Test object>
>>> t.select_related(2)
<Test: Test object>
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?)
>>>t.to_dbref()
DBRef('test', ObjectId('54b6353c4878c414e814d195'))
to_json
jsonオブジェクトに変換
>>>t.to_json()
'{"name": "Tommy.Yu"}'
to_mongo
Return as SON data ready for use with MongoDB.
>>> t.to_mongo()
SON([('_id', ObjectId('54b6353c4878c414e814d195')), ('name', u'Tommy.Yu')])
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. ここにいるよDocumentクラスで更新操作を行います.方法QuerySet.updateのシンプルなパッケージ.オブジェクトがsaveメソッドを呼び出していない場合、OperationError例外がトリガーされます.ps: ソースコード .upsertパラメータを追加すると、すべてのフィールドが削除されます.
>>> t.to_json()
'{"_id": {"$oid": "54b71e044878c414e814d196"}, "name": "Tommy.Yu"}'
>>> t.name='Tommy'
>>> t.update(upsert=True)
1
>>> t.to_json()
'{"_id": {"$oid": "54b71e044878c414e814d196"}, "name": "Tommy"}'
>>> t2=t.reload()
>>> t2.to_json()
'{"_id": {"$oid": "54b71e044878c414e814d196"}}'
>>> t.save()
<Test: Test object>
>>> t.to_json()
'{"_id": {"$oid": "54b71e044878c414e814d196"}}'
フィールドを更新するには、カラムの前にset__を追加する必要があります.次のようになります.
>>> t.update(set__name='joe')
1
>>> t.reload()
<Test: Test object>
>>> t.to_json()
'{"_id": {"$oid": "54b6353c4878c414e814d195"}, "name": "joe"}'
validate
Ensure that all fields' values are valid and that required fields are present.