使用django-mongodb,如何对降盖集合进行排序?
问题描述:
有这种模式,一类代表在MongoDB的封顶集合:使用django-mongodb,如何对降盖集合进行排序?
class Event(models.Model):
objects = MongoDBManager()
create_at = models.DateTimeField(auto_now_add=True)
obj = BlobField()
class MongoMeta:
capped = True
collection_size = 1000*1024*1024
我可以用得到它们插入相反的顺序文件?
答
这是在pymongo水平时间的解决方案,不的Django MongoDB的级别:
from django.db import connections
import pymongo
conn = connections['default']
events_col = conn.get_collection('base_event')
events = events_col.find().sort('create_at', pymongo.DESCENDING)
答
我不是一个蟒蛇人,但我可以告诉你,加盖集合Natural Order是插入的顺序。因此,你可以做的蟒蛇相当于这个得到相反的顺序:
db.cappedCollection.find().sort({$natural:-1})
谷歌搜索有一点告诉我,这相当于像在python以下几点:
mongodb.cappedcol.find().sort('$natural',-1)
或者:
mongodb.cappedcol.find().sort('$natural', pymongo.DESCENDING)
答
- 我们没有任何测试封顶收集的支持,所以它现在被打破。我只是修复它,请使用我们的Git repository的
master
分支来获得工作版本。 - 反向自然排序尚未实现。我打开了一个bug https://github.com/django-nonrel/mongodb-engine/issues/106,补丁欢迎!
这个作品,但它是在MongoDB的CLI的JavaScript。我需要django-mongodb级别的解决方案。无论如何感谢亚当。 – 2012-02-21 13:59:19
已更新,这是两者之间非常简单的翻译 – 2012-02-21 14:46:04