aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/db
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/db')
-rw-r--r--mediagoblin/db/indexes.py15
-rw-r--r--mediagoblin/db/models.py2
2 files changed, 16 insertions, 1 deletions
diff --git a/mediagoblin/db/indexes.py b/mediagoblin/db/indexes.py
index a832e013..30d43c98 100644
--- a/mediagoblin/db/indexes.py
+++ b/mediagoblin/db/indexes.py
@@ -90,6 +90,21 @@ MEDIAENTRY_INDEXES = {
# Indexing on uploaders and when media entries are created.
# Used for showing a user gallery, etc.
'index': [('uploader', ASCENDING),
+ ('created', DESCENDING)]},
+
+ 'state_uploader_tags_created': {
+ # Indexing on processed?, media uploader, associated tags, and timestamp
+ # Used for showing media items matching a tag search, most recent first.
+ 'index': [('state', ASCENDING),
+ ('uploader', ASCENDING),
+ ('tags.slug', DESCENDING),
+ ('created', DESCENDING)]},
+
+ 'state_tags_created': {
+ # Indexing on processed?, media tags, and timestamp (across all users)
+ # This is used for a front page tag search.
+ 'index': [('state', ASCENDING),
+ ('tags.slug', DESCENDING),
('created', DESCENDING)]}}
diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py
index bad15aca..4ef2d928 100644
--- a/mediagoblin/db/models.py
+++ b/mediagoblin/db/models.py
@@ -184,7 +184,7 @@ class MediaEntry(Document):
'media_type': unicode,
'media_data': dict, # extra data relevant to this media_type
'plugin_data': dict, # plugins can dump stuff here.
- 'tags': [unicode],
+ 'tags': [dict],
'state': unicode,
# For now let's assume there can only be one main file queued