単一フィールドでドキュメントをソートする
このステップでは、MongoDB コレクション内のドキュメントをソートする方法を学びます。ソートにより、クエリ結果を特定の順序で整理できます。これは、データ分析やプレゼンテーションに不可欠です。環境は、books コレクションを含む bookstore データベースで事前に設定されています。
まず、MongoDB シェルを開いてデータベースと対話します。ターミナルで次のコマンドを実行します。
mongosh
シェルに入ったら、bookstore データベースに切り替えます。
use bookstore
books コレクション内のドキュメントを表示するには、find() メソッドを使用できます。
db.books.find();
次に、これらのドキュメントをソートしましょう。単一フィールドでソートするには、find() クエリに .sort() メソッドをチェーンします。sort() メソッドは、ソートするフィールドと方向(昇順の場合は 1、降順の場合は -1)を指定するオブジェクトを受け取ります。
ページ数で書籍を昇順(ページ数が少ない順)にソートしてみましょう。
db.books.find().sort({ pages: 1 });
ページ数が最も少ない「Python Basics」が最初にリストされているのがわかります。
[
{
_id: ObjectId('...'),
title: 'Python Basics',
pages: 250,
price: 29.99
},
{
_id: ObjectId('...'),
title: 'MongoDB Fundamentals',
pages: 300,
price: 34.99
},
...
]
次に、価格で書籍を降順にソートして、最も高価なものを先に表示しましょう。
db.books.find().sort({ price: -1 });
このコマンドは、「Data Science」が最も高価であるため、最初に表示されます。
[
{
_id: ObjectId('...'),
title: 'Data Science',
pages: 350,
price: 44.99
},
{
_id: ObjectId('...'),
title: 'JavaScript Advanced',
pages: 400,
price: 39.99
},
...
]