From 445ae44d77f5d2d350e1c16e471d02bfab340254 Mon Sep 17 00:00:00 2001 From: seesharprun Date: Tue, 9 Dec 2025 11:32:50 -0500 Subject: [PATCH] Add reference files --- reference/operators/bitwise-update/$bit.md | 228 +++++++++++++++++++++ 1 file changed, 228 insertions(+) create mode 100644 reference/operators/bitwise-update/$bit.md diff --git a/reference/operators/bitwise-update/$bit.md b/reference/operators/bitwise-update/$bit.md new file mode 100644 index 0000000..1e68b9b --- /dev/null +++ b/reference/operators/bitwise-update/$bit.md @@ -0,0 +1,228 @@ +--- +title: $bit +description: The `$bit` operator is used to perform bitwise operations on integer values. +type: operators +category: bitwise-update +--- + +# $bit + +The `$bit` operator is used to perform bitwise operations on integer values. It can be used to update integer fields in documents by applying bitwise AND, OR, and XOR operations. Bitwise operators like $bit aren't designed for incrementing values, but for manipulating bits directly (like checking, setting, or clearing specific bits). + +## Syntax + +```javascript +{ + $bit: { + < field >: { + < operator >: < number > + } + } +} +``` + +## Parameters + +| Parameter | Description | +| --- | --- | +| **``** | The field to perform the bitwise operation on. | +| **``** | The bitwise operation to perform. Can be one of: `and`, `or`, `xor`. | +| **``** | The number to use for the bitwise operation. | + +## Examples + +Consider this sample document from the stores collection. + +```json +{ + "_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 + } + ] + } + ] +} +``` + +### Example 1: Perform a bitwise AND operation on the `partTime` field in `totalStaff` + +```javascript +db.stores.updateOne({ + _id: "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5" +}, { + $bit: { + "staff.totalStaff.partTime": { + and: 1 + } + } +}) +``` + +This query returns the following result. + +```json +[ + { + "acknowledged": true, + "insertedId": null, + "matchedCount": "1", + "modifiedCount": "1", + "upsertedCount": 0 + } +] +``` + +### Example 2: Perform a bitwise OR operation on the `partTime` field in `totalStaff` + +```javascript +db.stores.updateOne({ + _id: "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5" +}, { + $bit: { + "staff.totalStaff.partTime": { + "or": 1 + } + } +}) +``` + +This query returns the following result. + +```json +[ + { + "acknowledged": true, + "insertedId": null, + "matchedCount": "1", + "modifiedCount": "1", + "upsertedCount": 0 + } +] +``` + +### Example 3: Perform a bitwise XOR operation on the `partTime` field in `totalStaff` + +```javascript +db.stores.updateOne({ + _id: "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5" +}, { + $bit: { + "staff.totalStaff.partTime": { + "xor": 1 + } + } +}) +``` + +This query returns the following result. + +```json +[ + { + "acknowledged": true, + "insertedId": null, + "matchedCount": "1", + "modifiedCount": "1", + "upsertedCount": 0 + } +] +```