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.
SE APLICA A:
núcleo virtual de MongoDB
El $size
operador se usa para consultar documentos en los que un campo de matriz tiene un número especificado de elementos. Este operador es útil cuando necesita buscar documentos en función del tamaño de un campo de matriz, como buscar documentos con algunos elementos de una lista.
Sintaxis
db.collection.find({ <field>: { $size: <number> } })
Parámetros
Descripción | |
---|---|
field |
Campo que contiene la matriz. |
number |
Número de elementos que debe tener la matriz. |
Ejemplo
Vamos a comprender el uso con json de ejemplo del conjunto de stores
datos.
{
"_id": "988d2dd1-2faa-4072-b420-b91b95cbfd60",
"name": "Lakeshore Retail",
"sales": {
"salesByCategory": [
{
"categoryName": "Towel Racks",
"totalSales": 13237
},
{
"categoryName": "Washcloths",
"totalSales": 44315
},
{
"categoryName": "Face Towels",
"totalSales": 42095
},
{
"categoryName": "Toothbrush Holders",
"totalSales": 47912
},
{
"categoryName": "Hybrid Mattresses",
"totalSales": 48660
},
{
"categoryName": "Napkins",
"totalSales": 31439
},
{
"categoryName": "Pillow Cases",
"totalSales": 38833
}
]},
"tag": [
'#ShopLocal',
'#FashionStore',
'#SeasonalSale',
'#FreeShipping',
'#MembershipDeals'
]
}
Ejemplo 1: Buscar documentos con un número específico de elementos en una matriz
En el ejemplo se recuperan documentos de la stores
colección donde la sales.salesByCategory
matriz contiene exactamente 7 elementos.
db.stores.find( { "sales.salesByCategory": { $size: 7 }}
,{"_id":1,"name":1,"sales.salesByCategory":1}
).limit(2)
Esta consulta devuelve los dos documentos de la stores
colección como restringido por limit
la cláusula .
{
"_id": "7ed4b356-1290-433e-bd96-bf95f817eaaa",
"name": "Wide World Importers",
"sales": {
"salesByCategory": [
{
"categoryName": "Ultrabooks",
"totalSales": 31304
},
{
"categoryName": "Laptop Accessories",
"totalSales": 10044
},
{
"categoryName": "Laptops",
"totalSales": 48851
},
{
"categoryName": "Refill Kits",
"totalSales": 9604
},
{
"categoryName": "Prepaid Phones",
"totalSales": 28600
},
{
"categoryName": "Android Phones",
"totalSales": 4580
},
{
"categoryName": "Photo Printers",
"totalSales": 35234
}
]
}
}
{
"_id": "988d2dd1-2faa-4072-b420-b91b95cbfd60",
"name": "Lakeshore Retail",
"sales": {
"salesByCategory": [
{
"categoryName": "Towel Racks",
"totalSales": 13237
},
{
"categoryName": "Washcloths",
"totalSales": 44315
},
{
"categoryName": "Face Towels",
"totalSales": 42095
},
{
"categoryName": "Toothbrush Holders",
"totalSales": 47912
},
{
"categoryName": "Hybrid Mattresses",
"totalSales": 48660
},
{
"categoryName": "Napkins",
"totalSales": 31439
},
{
"categoryName": "Pillow Cases",
"totalSales": 38833
}
]
}
}
Contenido relacionado
- Revise las opciones para migrar de MongoDB a Azure Cosmos DB para MongoDB (núcleo virtual)
- Más información sobre la compatibilidad de características con MongoDB