2012-02-20 5 views
2

は、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 

は、私は彼らが挿入されている逆の順序で文書を取得するために何を使用することができますか?

答えて

0

これは一時的なpymongoレベルでのソリューション、ないジャンゴ・MongoDBのレベルです:これは動作しますが、それはMongoDBのCLIでのjavascriptです

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) 
0

私はPythonの人ではありませんが、私はあなたが挿入されたコレクションNatural Orderが挿入の順序であることを伝えることができます。

mongodb.cappedcol.find().sort('$natural',-1) 

または::グーグルのビットが、これはpythonで次のように変換私に語っ

db.cappedCollection.find().sort({$natural:-1}) 

:したがって、あなただけの逆順を取得するには、このののpython同等の操作を行うことができます

mongodb.cappedcol.find().sort('$natural', pymongo.DESCENDING) 
+0

。私はdjango-mongodbレベルで解決策が必要です。とにかくアダムありがとう。 –

+0

が更新されました。 –

0
  • キャッピングされたコレクションサポートのテストはまだありませんでした。以前は壊れていました。私はちょうどそれを固定しました、私たちのGit repositorymaster支店を使用して作業バージョンを取得してください。
  • 逆自然順序付けはまだ実装されていません。私はバグhttps://github.com/django-nonrel/mongodb-engine/issues/106を開いた、歓迎パッチ!
関連する問題