Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die $skip-Phase in der Aggregationspipeline wird verwendet, um eine bestimmte Anzahl von Dokumenten aus der Eingabe zu überspringen und die verbleibenden Dokumente an die nächste Phase in der Pipeline zu übergeben. Die Phase eignet sich zum Implementieren der Paginierung in Abfragen und zum Steuern der Teilmenge von Dokumenten, die in nachfolgenden Phasen der Pipeline bearbeitet werden.
Syntax
{
$skip: <number>
}
Die Parameter
| Parameter | Description |
|---|---|
number |
Die Anzahl der Dokumente, die übersprungen werden sollen, bevor die verbleibenden Dokumente an die nächste Stufe übergeben werden |
Examples
Betrachten Sie dieses Beispieldokument aus der Stores-Sammlung.
{
_id: '0fcc0bf0-ed18-4ab8-b558-9848e18058f4',
name: 'First Up Consultants | Beverage Shop - Satterfieldmouth',
location: { lat: -89.2384, lon: -46.4012 },
staff: { employeeCount: { fullTime: 2, partTime: 20 } },
sales: {
salesByCategory: [
{ categoryName: 'Wine Accessories', totalSales: 34450 },
{ categoryName: 'Bitters', totalSales: 39496 },
{ categoryName: 'Rum', totalSales: 1734 }
],
revenue: 75670
},
promotionEvents: [
{
eventName: 'Unbeatable Bargain Bash',
promotionalDates: {
startDate: { Year: 2024, Month: 6, Day: 23 },
endDate: { Year: 2024, Month: 7, Day: 2 }
},
discounts: [
{ categoryName: 'Whiskey', discountPercentage: 7 },
{ categoryName: 'Bitters', discountPercentage: 15 },
{ categoryName: 'Brandy', discountPercentage: 8 },
{ categoryName: 'Sports Drinks', discountPercentage: 22 },
{ categoryName: 'Vodka', discountPercentage: 19 }
]
},
{
eventName: 'Steal of a Deal Days',
promotionalDates: {
startDate: { Year: 2024, Month: 9, Day: 21 },
endDate: { Year: 2024, Month: 9, Day: 29 }
},
discounts: [
{ categoryName: 'Organic Wine', discountPercentage: 19 },
{ categoryName: 'White Wine', discountPercentage: 20 },
{ categoryName: 'Sparkling Wine', discountPercentage: 19 },
{ categoryName: 'Whiskey', discountPercentage: 17 },
{ categoryName: 'Vodka', discountPercentage: 23 }
]
},
{
eventName: 'Summer Sale',
promotionalDates: {
startDate: { Year: 2024, Month: 6, Day: 1 },
endDate: { Year: 2024, Month: 6, Day: 15 }
},
discounts: [ { categoryName: 'DJ Speakers', discountPercentage: 20 } ]
}
],
company: 'First Up Consultants',
city: 'Satterfieldmouth',
storeOpeningDate: ISODate("2024-09-20T18:28:57.302Z"),
lastUpdated: Timestamp({ t: 1729448937, i: 1 }),
store: { promotionEvents: null },
tag: [ '#ShopLocal' ]
}
Beispiel 1: Überspringen von Dokumenten in einer Auflistung
Um die ersten zwei Dokumente zu überspringen und den Rest zurückzugeben, können Sie die folgende Aggregationspipeline verwenden:
db.stores.aggregate([
{ $skip: 2 }
])
Die ersten beiden Ergebnisse, die von dieser Abfrage zurückgegeben werden, sind:
[
{
"_id": "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5",
"store": {
"name": "Downtown Store",
"promotionEvents": ["Summer Sale", "Black Friday", "Holiday Deals"]
}
},
{
"_id": "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c6",
"store": {
"name": "Uptown Store",
"promotionEvents": ["Back to School", "Winter Sale"]
}
}
]
Beispiel 2: Überspringen von Dokumenten und anschließendes Einschränken des Ergebnisses
Um die ersten zwei Dokumente zu überspringen und das Ergebnis dann auf die nächsten drei Dokumente zu beschränken, können Sie $skip mit $limit kombinieren:
db.stores.aggregate([
{ $skip: 2 },
{ $limit: 3 }
])
Die ersten beiden Ergebnisse, die von dieser Abfrage zurückgegeben werden, sind:
[
{
"_id": "728c068a-638c-40af-9172-8ccfa7dddb49",
"name": "Contoso, Ltd. | Book Store - Lake Myron",
"location": {
"lat": 29.416,
"lon": 21.5231
},
"staff": {
"employeeCount": {
"fullTime": 7,
"partTime": 16
}
},
"sales": {
"salesByCategory": [
{
"categoryName": "Science Fiction",
"totalSales": 34879
}
],
"revenue": 34879
},
"promotionEvents": [
{
"eventName": "Blowout Bonanza",
"promotionalDates": {
"startDate": {
"Year": 2024,
"Month": 9,
"Day": 21
},
"endDate": {
"Year": 2024,
"Month": 9,
"Day": 30
}
},
"discounts": [
{
"categoryName": "Children's Books",
"discountPercentage": 11
},
{
"categoryName": "Fiction",
"discountPercentage": 21
}
]
}
],
"company": "Contoso, Ltd.",
"city": "Lake Myron",
"storeOpeningDate": "ISODate('2024-09-28T18:23:21.591Z')",
"lastUpdated": "Timestamp({ t: 1730139801, i: 1 })",
"storeFeatures": 239
},
{
"_id": "44fdb9b9-df83-4492-8f71-b6ef648aa312",
"name": "Fourth Coffee | Storage Solution Gallery - Port Camilla",
"location": {
"lat": 78.3889,
"lon": 0.6784
},
"staff": {
"employeeCount": {
"fullTime": 17,
"partTime": 15
}
},
"sales": {
"salesByCategory": [
{
"categoryName": "Storage Boxes",
"totalSales": 2236
}
],
"revenue": 2236
},
"promotionEvents": [
{
"eventName": "Major Discount Mania",
"promotionalDates": {
"startDate": {
"Year": 2024,
"Month": 6,
"Day": 23
},
"endDate": {
"Year": 2024,
"Month": 7,
"Day": 3
}
},
"discounts": [
{
"categoryName": "Bathroom Storage",
"discountPercentage": 19
},
{
"categoryName": "Kitchen Storage",
"discountPercentage": 10
}
]
},
{
"eventName": "Flash Deal Frenzy",
"promotionalDates": {
"startDate": {
"Year": 2024,
"Month": 9,
"Day": 21
},
"endDate": {
"Year": 2024,
"Month": 9,
"Day": 30
}
},
"discounts": [
{
"categoryName": "Under-Bed Storage",
"discountPercentage": 20
},
{
"categoryName": "Closet Organizers",
"discountPercentage": 21
}
]
}
],
"company": "Fourth Coffee",
"city": "Port Camilla",
"storeOpeningDate": "ISODate('2024-09-23T06:02:53.844Z')",
"lastUpdated": "Timestamp({ t: 1729663373, i: 1 })",
"storeFeatures": 222
}
]
Beispiel 3: Überspringen von Dokumenten in einer komplexen Pipeline
So überspringen Sie das erste Heraufgestufungsereignis und projizieren dann die verbleibenden Ereignisse für einen bestimmten Speicher:
db.stores.aggregate([
{ $match: { "_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4", } },
{ $unwind: "$promotionEvents" },
{ $skip: 1 },
{ $project: { "promotionEvents": 1, _id: 0 } }
])
Die ersten beiden Ergebnisse, die von dieser Abfrage zurückgegeben werden, sind:
[
{
"promotionEvents": {
"eventName": "Steal of a Deal Days",
"promotionalDates": {
"startDate": {
"Year": 2024,
"Month": 9,
"Day": 21
},
"endDate": {
"Year": 2024,
"Month": 9,
"Day": 29
}
},
"discounts": [
{
"categoryName": "Organic Wine",
"discountPercentage": 19
},
{
"categoryName": "White Wine",
"discountPercentage": 20
},
{
"categoryName": "Sparkling Wine",
"discountPercentage": 19
},
{
"categoryName": "Whiskey",
"discountPercentage": 17
},
{
"categoryName": "Vodka",
"discountPercentage": 23
}
]
}
},
{
"promotionEvents": {
"eventName": "Summer Sale",
"promotionalDates": {
"startDate": {
"Year": 2024,
"Month": 6,
"Day": 1
},
"endDate": {
"Year": 2024,
"Month": 6,
"Day": 15
}
},
"discounts": [
{
"categoryName": "DJ Speakers",
"discountPercentage": 20
}
]
}
}
]