このガイドでは、次のメソッドを使用して、読み取り操作から返されるドキュメントを指定する方法を学習できます。
limit()
: クエリから返されるドキュメントの最大数を指定します。
sort()
: 返されるドキュメントのソート順序を指定します。
skip()
: クエリ結果を返す前にスキップするドキュメントの数を指定します。
読み取り操作から返されるドキュメントの最大数を指定するには、 limit()
メソッドを呼び出します。
次の例では、cuisine
フィールドの値が "Italian"
であるすべてのレストランを検索し、結果を 5 ドキュメントに制限します。対応するコードを表示するには、Synchronous タブまたは Asynchronousタブを選択します。
results = restaurants.find({ "cuisine" : "Italian"}).limit(5) |
|
for restaurant in results: |
print(restaurant["name"]) |
Isle Of Capri Resturant Italian |
Arturo'S Italian |
Patsy'S Italian Restaurant Italian |
Piccola Venezia Italian |
Roadhouse Restaurant Italian |
results = restaurants.find({ "cuisine" : "Italian"}).limit(5) |
|
async for restaurant in results: |
print(restaurant["name"]) |
Isle Of Capri Resturant Italian |
Arturo'S Italian |
Patsy'S Italian Restaurant Italian |
Piccola Venezia Italian |
Roadhouse Restaurant Italian |
また、find()
メソッドで limit
パラメータを指定して、返されるドキュメントの数を制限することもできます。対応するコードを表示するには、Synchronous タブまたは Asynchronousタブを選択します。
results = restaurants.find({ "cuisine" : "Italian"}, limit=5) |
|
for restaurant in results: |
print(restaurant["name"]) |
Isle Of Capri Resturant Italian |
Arturo'S Italian |
Patsy'S Italian Restaurant Italian |
Piccola Venezia Italian |
Roadhouse Restaurant Italian |
results = restaurants.find({ "cuisine" : "Italian"}, limit=5) |
|
async for restaurant in results: |
print(restaurant["name"]) |
Isle Of Capri Resturant Italian |
Arturo'S Italian |
Patsy'S Italian Restaurant Italian |
Piccola Venezia Italian |
Roadhouse Restaurant Italian |
Tip
上記の例では、クエリによって返された最初の 5 つのドキュメントが、特定の順序で返されることはありません。 次のセクションでは、指定されたソート順序でドキュメントを返す方法について説明します。
To return documents in a specified order, call the sort()
method. sort()
メソッドは、結果を並べ替えるフィールドと並べ替え方向の 2 つのパラメータを取ります。 並べ替え方向を指定するには、 pymongo.ASCENDING
またはpymongo.DESCENDING
のいずれかを指定します。 ASCENDING
は最小値から最大値の順にソートし、 DESCENDING
は最大値から最小値の順にソートします。 どちらの方向も指定しない場合、 メソッドはデフォルトで昇順でソートします。
次の例では、昇順でソートされて、"Italian"
の cuisine
値を持つすべてのドキュメントが返されます。対応するコードを表示するには、Synchronous タブまたは Asynchronousタブを選択します。
results = restaurants.find({ "cuisine" : "Italian"}).sort("name", pymongo.ASCENDING) |
|
for restaurant in results: |
print(restaurant["name"]) |
(Lewis Drug Store) Locanda Vini E Olii |
101 Restaurant And Bar |
44 Sw Ristorante & Bar |
900 Park |
A Voce |
... |
Zucchero E Pomodori |
results = restaurants.find({ "cuisine" : "Italian"}).sort("name", pymongo.ASCENDING) |
|
async for restaurant in results: |
print(restaurant["name"]) |
(Lewis Drug Store) Locanda Vini E Olii |
101 Restaurant And Bar |
44 Sw Ristorante & Bar |
900 Park |
A Voce |
... |
Zucchero E Pomodori |
find()
メソッドで sort
パラメータを指定して、ドキュメントを並べ替えることもできます。次の例では、 sort
パラメーターを指定して、前の例と同じ順序で結果を返します。対応するコードを表示するには、Synchronous タブまたは Asynchronousタブを選択します。
results = restaurants.find({ "cuisine" : "Italian"}, sort={"name": pymongo.ASCENDING} ) |
|
for restaurant in results: |
print(restaurant["name"]) |
(Lewis Drug Store) Locanda Vini E Olii |
101 Restaurant And Bar |
44 Sw Ristorante & Bar |
900 Park |
A Voce |
... |
Zucchero E Pomodori |
results = restaurants.find({ "cuisine" : "Italian"}, sort={"name": pymongo.ASCENDING} ) |
|
async for restaurant in results: |
print(restaurant["name"]) |
(Lewis Drug Store) Locanda Vini E Olii |
101 Restaurant And Bar |
44 Sw Ristorante & Bar |
900 Park |
A Voce |
... |
Zucchero E Pomodori |
クエリ結果を返す前に指定した数のドキュメントをスキップするには、 skip()
メソッドを呼び出して、スキップするドキュメント数を渡します。 skip()
メソッドは、クエリ結果内の指定された数のドキュメントを無視し、残りを返します。
次の例では、borough
フィールドの値が "Manhattan"
であるすべてのドキュメントを返し、最初の 10 ドキュメントをスキップします。対応するコードを表示するには、Synchronous タブまたは Asynchronousタブを選択します。
results = restaurants.find({ "borough" : "Manhattan"}, skip=10) |
|
for restaurant in results: |
print(restaurant["name"]) |
Dorrian'S Red Hand Restaurant |
The Princeton Club |
Moran'S Chelsea |
La Parisienne Diner |
Jimmy'S Corner |
... |
results = restaurants.find({ "borough" : "Manhattan"}, skip=10) |
|
async for restaurant in results: |
print(restaurant["name"]) |
Dorrian'S Red Hand Restaurant |
The Princeton Club |
Moran'S Chelsea |
La Parisienne Diner |
Jimmy'S Corner |
... |
また、find()
メソッドの skip
パラメータを使用して、返されたドキュメントをスキップすることもできます。次の例では、前の例と同じスキップを指定しています。対応するコードを表示するには、Synchronous タブまたは Asynchronousタブを選択します。
results = restaurants.find({ "borough" : "Manhattan"}, skip=10) |
|
for restaurant in results: |
print(restaurant["name"]) |
Dorrian'S Red Hand Restaurant |
The Princeton Club |
Moran'S Chelsea |
La Parisienne Diner |
Jimmy'S Corner |
... |
results = restaurants.find({ "borough" : "Manhattan"}, skip=10) |
|
async for restaurant in results: |
print(restaurant["name"]) |
Dorrian'S Red Hand Restaurant |
The Princeton Club |
Moran'S Chelsea |
La Parisienne Diner |
Jimmy'S Corner |
... |
1 回の操作で、 limit()
、 sort()
、 skip()
メソッドを組み合わせることができます。 これにより、返されるソートされたドキュメントの最大数を設定して、返される前に指定された数のドキュメントをスキップできます。
次の例では、cuisine
の値が "Italian"
であるドキュメントを返します。結果はアルファベット順にソートされ、最初の 10 ドキュメントはスキップされます。対応するコードを表示するには、Synchronous タブまたは Asynchronousタブを選択します。
results = restaurants.find({ "cuisine" : "Italian"}) \ |
.sort("name", pymongo.ASCENDING) \ |
.limit(5) \ |
.skip(10) |
|
for restaurant in results: |
print(restaurant["name"]) |
Acqua |
Acqua Restaurant |
Acqua Santa |
Acquista Trattoria |
Acquolina Catering |
results = restaurants.find({ "cuisine" : "Italian"}) \ |
.sort("name", pymongo.ASCENDING) \ |
.limit(5) \ |
.skip(10) |
|
async for restaurant in results: |
print(restaurant["name"]) |
Acqua |
Acqua Restaurant |
Acqua Santa |
Acquista Trattoria |
Acquolina Catering |
注意
これらのメソッドを呼び出す順序によって、返されるドキュメントは変更されません。 ドライバーは、ソートとスキップ操作を最初に実行し、その後に制限操作を実行するために、呼び出しの順序を自動的に並べ替えます。
find()
メソッドのパラメーターとして指定して、結果を制限、並べ替え、スキップすることもできます。次の例では、前の例と同じクエリを指定しています。対応するコードを表示するには、Synchronous タブまたは Asynchronousタブを選択します。
results = restaurants.find({ "cuisine" : "Italian"}, limit=5, sort={"name": pymongo.ASCENDING}, skip=10) |
|
for restaurant in results: |
print(restaurant["name"]) |
Acqua |
Acqua Restaurant |
Acqua Santa |
Acquista Trattoria |
Acquolina Catering |
results = restaurants.find({ "cuisine" : "Italian"}, limit=5, sort={"name": pymongo.ASCENDING}, skip=10) |
|
async for restaurant in results: |
print(restaurant["name"]) |
Acqua |
Acqua Restaurant |
Acqua Santa |
Acquista Trattoria |
Acquolina Catering |
クエリの指定の詳細については、「 クエリの指定 」を参照してください。
ドキュメント検索の詳細については、ドキュメントの検索を参照してください。
このガイドで説明したメソッドや型の詳細については、次の API ドキュメントを参照してください。