$size(数组表达式)
适用对象: MongoDB vCore
$size
运算符用于计算数组中的元素数量。 需要确定文档中的数组字段的大小时,它特别有用。 此运算符可用于聚合管道以及查询投影。
使用 $size
运算符的语法如下所示:
{ $size: <array> }
说明 | |
---|---|
array |
你要计算其元素数量的数组。 |
让我们了解 stores
数据集中的示例 json 的用法。
{
"_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'
]
}
该示例查询计算并返回所提供 JSON 示例的 salesByCategory
数组中的元素数量。
db.stores.aggregate([
{
$match: { "_id": "988d2dd1-2faa-4072-b420-b91b95cbfd60"}
},
{
$project: {
"storeId": 1,
"name": 1,
"numberOfSalesCategories": { $size: "$sales.salesByCategory" }
}
}
])
该查询返回“Lakehore Retail”商店可用的销售类别数量。
{
"_id": "988d2dd1-2faa-4072-b420-b91b95cbfd60",
"name": "Lakeshore Retail",
"numberOfSalesCategories": 7
}