返された結果をスキップする
Overview
読み取り操作で返されるドキュメントのリストの先頭からドキュメントを除外するには、 skip
を使用します。 skip
とソートを組み合わせて、特定のクエリの上位(降順)または下位(昇順)の結果を省略できます。 返されるドキュメントの順序は、ソートがない場合には保証されないため、 sort
を使用せずにskip
を使用すると、任意のドキュメントが省略されます。
skip
の値がクエリに一致するドキュメントの数を超える場合、そのクエリはドキュメントを返しません。
サンプル ドキュメント
このガイドの例えに従うには、次のコード スニペットを使用して、完了を説明するドキュメントをmyDB.fruits
コレクションに挿入します。
const myDB = client.db("myDB"); const myColl = myDB.collection("fruits"); await myColl.insertMany([ { "_id": 1, "name": "apples", "qty": 5, "rating": 3 }, { "_id": 2, "name": "bananas", "qty": 7, "rating": 1 }, { "_id": 3, "name": "oranges", "qty": 6, "rating": 2 }, { "_id": 4, "name": "avocados", "qty": 3, "rating": 5 }, ]);
注意
クエリ操作により、一致するドキュメントを含むカーソルへの参照が返される場合があります。カーソルに格納されているデータを調べる方法については、「カーソルの基礎ページ」を参照してください。
例
次の例では、すべてのドキュメントに一致するフィルターを使用してコレクションをクエリし、クエリsort
skip
オプションとして コマンドと コマンドを指定するオプションを渡します。並べ替え オプションでは、 rating
値が高い実例ドキュメントが、評価の低いドキュメントの前に返されるように指定されます。 skip オプションは、最初の 2 つのドキュメントを結果から除外することを指定します。
// define an empty query document const query = {}; const options = { // sort in descending (-1) order by rating sort : { rating: -1 }, // omit the first two documents skip : 2, } const cursor = myColl.find(query, options); for await (const doc of cursor) { console.dir(doc); }
クエリが最初の2
ドキュメントをスキップするように指定したため、評価の高い 3 番目と 4 番目のドキュメントは、上記のコード スニペットによって出力されます。
{ "_id": 3, "name": "oranges", "qty": 6, "rating": 2 } { "_id": 2, "name": "bananas", "qty": 7, "rating": 1 }
sort
オプションとskip
オプションは、 find
メソッドに連結されたメソッドとして指定することもできます。 次の 2 つのコマンドは同等です。
myColl.find(query, { sort: { rating: -1}, skip: 2}); myColl.find(query).sort({rating: -1}).skip(2);