sortとnatural order

"natural order" はコレクション内でのオブジェクトのネィティブな順序、と定義します。

find() がパラメータ無しで実行されたとき、データベースはnatural orderの順でオブジェクトを返します。

通常のテーブルでは、natural orderは特に便利ではありません。なぜなら、その順序は、基本的にはインサートした順ですが、それは 保証されない からです。しかし、 制限付きコレクション (Capped Collections) では、natural orderはインサート順に保証されます。これはとても便利です。

一般的に、natural order機能は、インサートした順にデータを保存、取得するのにとても効率的です(たとえば、インデックスを張ったtimestampフィールドよりもかなり速いです)。 しかし、このための用途では、必ず制限付きコレクション (Capped Collections)を使ってください。

昇順のnatural orderに加えて、降順のnatural orderで取得することもできます。 たとえば、最近追加された50件のアイテムを制限付きコレクション (Capped Collections)から取得するには、

> c=db.cappedCollection.find().sort({$natural:-1}).limit(50)

ソートは、どのコレクションのどのフィールドですることもできます。たとえば、 'name'の昇順、次に'age'の降順でソートするには、

> c=db.collection.find().sort({name : 1, age : -1})

参考資料


Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

IF YOU HAVE A QUESTION, POST IT TO THE USER GROUP.

These pages are fine for comments, but for questions, your best bet will always be the MongoDB User Group.

blog comments powered by Disqus