Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O $documentNumber operador classifica documentos em um ou mais campos dentro de uma partição e atribui um número de documento para cada documento no conjunto de resultados.
Sintaxe
{
$documentNumber: {}
}
Exemplos
Considere este documento de exemplo da coleção de documentos das lojas.
{
"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4",
"name": "First Up Consultants | Beverage Shop - Satterfieldmouth",
"location": {
"lat": -89.2384,
"lon": -46.4012
},
"staff": {
"totalStaff": {
"fullTime": 8,
"partTime": 20
}
},
"sales": {
"totalSales": 75670,
"salesByCategory": [
{
"categoryName": "Wine Accessories",
"totalSales": 34440
},
{
"categoryName": "Bitters",
"totalSales": 39496
},
{
"categoryName": "Rum",
"totalSales": 1734
}
]
},
"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
}
]
}
]
}
Exemplo 1 – Recuperar um número de documento pelo total de vendas
Para recuperar um número de documento (classificação posicional) para cada loja na empresa First Up Consultants, primeiro execute uma consulta para filtrar pelo nome da empresa e, em seguida, classifique os resultados em ordem crescente de vendas totais e atribua um número de documento a cada um dos documentos no conjunto de resultados classificado.
db.stores.aggregate([{
"$match": {
"company": {
"$in": ["First Up Consultants"]
}
}
}, {
"$setWindowFields": {
"partitionBy": "$company",
"sortBy": {
"sales.totalSales": -1
},
"output": {
"documentNumber": {
"$documentNumber": {}
}
}
}
}, {
"$project": {
"company": 1,
"documentNumber": 1
}
}])
Os primeiros 5 resultados retornados por esta consulta são:
[
{
"_id": "39acb3aa-f350-41cb-9279-9e34c004415a",
"company": "First Up Consultants",
"documentNumber": 1
},
{
"_id": "26afb024-53c7-4e94-988c-5eede72277d5",
"company": "First Up Consultants",
"documentNumber": 2
},
{
"_id": "62438f5f-0c56-4a21-8c6c-6bfa479494ad",
"company": "First Up Consultants",
"documentNumber": 3
},
{
"_id": "bfb213fa-8db8-419f-8e5b-e7096120bad2",
"company": "First Up Consultants",
"documentNumber": 4
},
{
"_id": "14ab145b-0819-4d22-9e02-9ae0725fcda9",
"company": "First Up Consultants",
"documentNumber": 5
}
]