Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El operador $first ordena documentos en uno o varios campos especificados por la consulta y devuelve el primer documento que coincide con los criterios de filtrado. Si no se especifica ningún criterio de ordenación, el orden no está definido.
Syntax
{
$first: <expression>
}
Parámetros
| Parámetro | Description |
|---|---|
expression |
Expresión que se va a evaluar y devolver el primer documento del conjunto de resultados |
Examples
Considere este documento de ejemplo de la colección de tiendas.
{
"_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
}
]
}
]
}
Ejemplo 1: Obtención del documento actualizado recientemente
Para recuperar el almacén actualizado menos recientemente en la empresa First Up Consultants, ejecute una consulta para capturar todos los documentos que pertenecen a la empresa "First Up Consultants", ordene los documentos resultantes en orden ascendente del campo lastUpdated y devuelva el primer documento del conjunto de resultados.
db.stores.aggregate([{
$match: {
company: {
$in: ["First Up Consultants"]
}
}
}, {
$sort: {
lastUpdated: 1
}
}, {
$group: {
_id: "$company",
firstUpdated: {
$first: "$lastUpdated"
}
}
}])
Esta consulta devuelve el siguiente resultado:
[
{
"_id": "First Up Consultants",
"firstUpdated": "ISODate('2025-06-11T10:48:01.291Z')"
}
]
Ejemplo 2: Obtener la primera categoría por importe de ventas por tienda
Para recuperar la primera categoría (alfabéticamente) dentro de cada tienda, ejecute una consulta para ordenar la lista de categorías de ventas dentro de cada tienda y devolver la primera categoría del conjunto de resultados ordenado por almacén.
db.stores.aggregate([{
$unwind: "$sales.salesByCategory"
},
{
$sort: {
"_id": 1,
"sales.salesByCategory.categoryName": 1
}
},
{
$group: {
_id: "$_id",
storeName: {
$first: "$name"
},
totalSales: {
$first: "$sales.totalSales"
},
firstCategory: {
$first: {
categoryName: "$sales.salesByCategory.categoryName",
categoryTotalSales: "$sales.salesByCategory.totalSales"
}
}
}
}
])
Los dos primeros resultados devueltos por esta consulta son:
[
{
"_id": "64ec6589-068a-44a6-be5b-9d37bb0a90f1",
"storeName": "First Up Consultants | Computer Gallery - West Cathrine",
"totalSales": 186829,
"firstCategory": {
"categoryName": "Cases",
"categoryTotalSales": 36386
}
},
{
"_id": "14343900-2a5c-44bf-a52b-9efe63579866",
"storeName": "Northwind Traders | Home Improvement Closet - West Evanside",
"totalSales": 35371,
"firstCategory": {
"categoryName": "Doors",
"categoryTotalSales": 21108
}
}
]
Ejemplo 3: Obtener el primer evento de promoción por tienda
Para recuperar el primer evento de promoción para cada almacén, ejecute una consulta para ordenar la lista de eventos de promoción dentro de cada almacén por startDate y devolver el primer evento del conjunto de resultados ordenado por almacén.
Obtiene el primer evento de promoción para cada tienda en función de la fecha de inicio.
db.stores.aggregate([{
$unwind: "$promotionEvents"
},
{
$sort: {
"_id": 1,
"promotionEvents.promotionalDates.startDate.Year": 1,
"promotionEvents.promotionalDates.startDate.Month": 1,
"promotionEvents.promotionalDates.startDate.Day": 1
}
},
{
$group: {
_id: "$_id",
storeName: {
$first: "$name"
},
firstPromotionEvent: {
$first: {
eventName: "$promotionEvents.eventName",
startYear: "$promotionEvents.promotionalDates.startDate.Year",
startMonth: "$promotionEvents.promotionalDates.startDate.Month"
}
}
}
}
])
Los dos primeros resultados devueltos por esta consulta son:
[
{
"_id": "64ec6589-068a-44a6-be5b-9d37bb0a90f1",
"storeName": "First Up Consultants | Computer Gallery - West Cathrine",
"firstPromotionEvent": {
"eventName": "Crazy Markdown Madness",
"startYear": 2024,
"startMonth": 6
}
},
{
"_id": "a58d0356-493b-44e6-afab-260aa3296930",
"storeName": "Fabrikam, Inc. | Outdoor Furniture Nook - West Lexie",
"firstPromotionEvent": {
"eventName": "Price Drop Palooza",
"startYear": 2023,
"startMonth": 9
}
}
]
Contenido relacionado
- Revise las opciones para migrar de MongoDB a Azure DocumentDB.
- Obtenga más información sobre la compatibilidad de características con MongoDB.