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 Aggregationspipelinestufe $documents
wird verwendet, um eine Pipeline aus einer Reihe von bereitgestellten Dokumenten zu erstellen. Diese Phase ist besonders hilfreich, wenn Sie bestimmte Dokumente verarbeiten möchten, ohne eine Sammlung abzufragen.
Syntax
{
$documents: [
<document1>,
<document2>,
...
]
}
Die Parameter
Parameter | BESCHREIBUNG |
---|---|
<document> |
Ein JSON-Objekt, das ein Dokument darstellt, das in die Pipeline aufgenommen werden soll. |
Beispiele
Beispiel 1: Erstellen einer Pipeline aus bestimmten Dokumenten
Im folgenden Beispiel wird veranschaulicht, wie Sie die $documents
Phase verwenden, um eine Reihe vordefinierter Dokumente zu verarbeiten:
db.aggregate([
{
$documents: [
{
"_id": "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5",
"name": "Lakeshore Retail | Holiday Supply Hub - Marvinfort",
"location": {
"lat": 60.1441,
"lon": -141.5012
},
"sales": {
"fullSales": 3700
},
"tag": ["#ShopLocal", "#SeasonalSale"]
},
{
"_id": "7e53ca0f-6e24-4177-966c-fe62a11e9af5",
"name": "Contoso, Ltd. | Office Supply Deals - South Shana",
"location": {
"lat": 40.7128,
"lon": -74.0060
},
"sales": {
"fullSales": 5400
},
"tag": ["#TechDeals", "#FreeShipping"]
}
]
},
{
$project: {
_id: 1,
name: 1,
"location.lat": 1,
"location.lon": 1,
"sales.fullSales": 1,
tags: "$tag" // renames "tag" to "tags"
}
}
]);
Diese Abfrage würde das folgende Dokument zurückgeben.
[
{
_id: '7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5',
name: 'Lakeshore Retail | Holiday Supply Hub - Marvinfort',
location: { lat: 60.1441, lon: -141.5012 },
sales: { fullSales: 3700 },
tags: [ '#ShopLocal', '#SeasonalSale' ]
},
{
_id: '7e53ca0f-6e24-4177-966c-fe62a11e9af5',
name: 'Contoso, Ltd. | Office Supply Deals - South Shana',
location: { lat: 40.7128, lon: -74.006 },
sales: { fullSales: 5400 },
tags: [ '#TechDeals', '#FreeShipping' ]
}
]
Beispiel 2: Kombinieren $documents
mit anderen Pipelinephasen
db.aggregate([
{
$documents: [
{
"_id": "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5",
"name": "Lakeshore Retail | Holiday Supply Hub - Marvinfort",
"location": {
"lat": 60.1441,
"lon": -141.5012
},
"sales": {
"fullSales": 3700
},
"tag": ["#ShopLocal", "#SeasonalSale"]
},
{
"_id": "7e53ca0f-6e24-4177-966c-fe62a11e9af5",
"name": "Contoso, Ltd. | Office Supply Deals - South Shana",
"location": {
"lat": 40.7128,
"lon": -74.0060
},
"sales": {
"fullSales": 5400
},
"tag": ["#TechDeals", "#FreeShipping"]
}
]
},
{
$match: { "sales.fullSales": { $gt: 4000 } }
},
{
$sort: { "sales.fullSales": -1 }
}
]);
Diese Abfrage würde das folgende Dokument zurückgeben.
[
{
_id: '7e53ca0f-6e24-4177-966c-fe62a11e9af5',
name: 'Contoso, Ltd. | Office Supply Deals - South Shana',
location: { lat: 40.7128, lon: -74.006 },
sales: { fullSales: 5400 },
tag: [ '#TechDeals', '#FreeShipping' ]
}
]
Einschränkungen
- Die $documents Phase wird nur in Aggregationspipelines auf Datenbankebene unterstützt. Es muss die erste Phase in der Pipeline sein, damit sie ordnungsgemäß funktioniert.
Verwandte Inhalte
- Prüfen Sie die Optionen für die Migration von MongoDB zu Azure Cosmos DB for MongoDB (virtueller Kern).
- Erfahren Sie mehr über die Featurekompatibilität mit MongoDB