Improvements to indexing documentation (#130)
This commit is contained in:
parent
6e2d2f33de
commit
b0c1ec04b5
@ -479,6 +479,10 @@ If a dictionary is passed then the following options are available:
|
|||||||
:attr:`unique` (Default: False)
|
:attr:`unique` (Default: False)
|
||||||
Whether the index should be unique.
|
Whether the index should be unique.
|
||||||
|
|
||||||
|
:attr:`expireAfterSeconds` (Optional)
|
||||||
|
Allows you to automatically expire data from a collection by setting the
|
||||||
|
time in seconds to expire the a field.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Inheritance adds extra fields indices see: :ref:`document-inheritance`.
|
Inheritance adds extra fields indices see: :ref:`document-inheritance`.
|
||||||
@ -512,6 +516,22 @@ point. To create a geospatial index you must prefix the field with the
|
|||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Time To Live indexes
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
A special index type that allows you to automatically expire data from a
|
||||||
|
collection after a given period. See the official
|
||||||
|
`ttl <http://docs.mongodb.org/manual/tutorial/expire-data/#expire-data-from-collections-by-setting-ttl>`_
|
||||||
|
documentation for more information. A common usecase might be session data::
|
||||||
|
|
||||||
|
class Session(Document):
|
||||||
|
created = DateTimeField(default=datetime.now)
|
||||||
|
meta = {
|
||||||
|
'indexes': [
|
||||||
|
{'fields': ['created'], 'expireAfterSeconds': 3600}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
Ordering
|
Ordering
|
||||||
========
|
========
|
||||||
A default ordering can be specified for your
|
A default ordering can be specified for your
|
||||||
|
@ -8,6 +8,7 @@ import uuid
|
|||||||
import warnings
|
import warnings
|
||||||
from operator import itemgetter
|
from operator import itemgetter
|
||||||
|
|
||||||
|
import pymongo
|
||||||
import gridfs
|
import gridfs
|
||||||
from bson import Binary, DBRef, SON, ObjectId
|
from bson import Binary, DBRef, SON, ObjectId
|
||||||
|
|
||||||
@ -37,7 +38,6 @@ __all__ = ['StringField', 'URLField', 'EmailField', 'IntField', 'LongField',
|
|||||||
'SequenceField', 'UUIDField']
|
'SequenceField', 'UUIDField']
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
RECURSIVE_REFERENCE_CONSTANT = 'self'
|
RECURSIVE_REFERENCE_CONSTANT = 'self'
|
||||||
|
|
||||||
|
|
||||||
@ -1392,7 +1392,7 @@ class GeoPointField(BaseField):
|
|||||||
.. versionadded:: 0.4
|
.. versionadded:: 0.4
|
||||||
"""
|
"""
|
||||||
|
|
||||||
_geo_index = True
|
_geo_index = pymongo.GEO2D
|
||||||
|
|
||||||
def validate(self, value):
|
def validate(self, value):
|
||||||
"""Make sure that a geo-value is of type (x, y)
|
"""Make sure that a geo-value is of type (x, y)
|
||||||
|
@ -231,8 +231,7 @@ class IndexesTest(unittest.TestCase):
|
|||||||
location = DictField()
|
location = DictField()
|
||||||
|
|
||||||
class Place(Document):
|
class Place(Document):
|
||||||
current = DictField(
|
current = DictField(field=EmbeddedDocumentField('EmbeddedLocation'))
|
||||||
field=EmbeddedDocumentField('EmbeddedLocation'))
|
|
||||||
meta = {
|
meta = {
|
||||||
'allow_inheritance': True,
|
'allow_inheritance': True,
|
||||||
'indexes': [
|
'indexes': [
|
||||||
|
Loading…
x
Reference in New Issue
Block a user