Dela via


$binarySize (datastorleksoperator)

Operatorn $binarySize används för att returnera storleken på ett binärt datafält. Detta kan vara användbart när du hanterar binära data som lagras, till exempel bilder, filer eller annat binärt innehåll. Argumentet för $binarySize ska vara en sträng eller ett binärt värde.

Syntax

Syntaxen för att använda operatorn $binarySize är följande:

{
  $binarySize: "<field>"
}

Parametrar

beskrivning
<field> Det fält som du vill hämta binärstorleken för.

Exempel

Nu ska vi förstå användningen med följande exempel-json.

{
  "_id": "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5",
   "name": "Lakeshore Retail | DJ Equipment Stop - Port Cecile",
  "location": {
    "lat": 60.1441,
    "lon": -141.5012
  },
  "staff": {
    "totalStaff": {
      "fullTime": 2,
      "partTime": 0
    }
  },
  "sales": {
    "salesByCategory": [
      {
        "categoryName": "DJ Headphones",
        "totalSales": 35921
      }
    ],
    "fullSales": 3700
  },
  "promotionEvents": [
    {
      "eventName": "Bargain Blitz Days",
      "promotionalDates": {
        "startDate": {
          "Year": 2024,
          "Month": 3,
          "Day": 11
        },
        "endDate": {
          "Year": 2024,
          "Month": 2,
          "Day": 18
        }
      },
      "discounts": [
        {
          "categoryName": "DJ Turntables",
          "discountPercentage": 18
        },
        {
          "categoryName": "DJ Mixers",
          "discountPercentage": 15
        }
      ]
    }
  ],
  "tag": [
    "#ShopLocal",
    "#SeasonalSale",
    "#FreeShipping",
    "#MembershipDeals"
  ]
}

Så här projicerar du storleken på ett binärt fält

db.stores.aggregate([
  {
    $project: {
      name: 1,          
      dataSize: {
        $binarySize: "$name" // Calculate the binary size of the string data
      }
    }
  },
  // Limit the result to the first 3 documents
  { $limit: 3 }  
])


Den här frågan returnerar följande dokument.

[
  {
    "_id": "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5",
    "name": "Lakeshore Retail | DJ Equipment Stop - Port Cecile",
    "dataSize": 50
  },
  {
    "_id": "649626c9-eda1-46c0-a27f-dcee19d97f41",
    "name": "VanArsdel, Ltd. | Musical Instrument Outlet - East Cassie",
    "dataSize": 57
  },
  {
    "_id": "8345de34-73ec-4a99-9cb6-a81f7b145c34",
    "name": "Northwind Traders | Bed and Bath Place - West Oraland",
    "dataSize": 53
  }
]