Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der $bitOr Operator führt einen bitweisen OR-Vorgang für ganzzahlige Werte aus. Es vergleicht jedes Bit des ersten Operanden mit dem entsprechenden Bit des zweiten Operanden. Wenn jedes Bit 1 ist, wird das entsprechende Ergebnisbit auf 1 festgelegt. Wenn beide Bits 0 sind, wird das entsprechende Ergebnisbit auf 0 festgelegt.
Syntax
{
$bitOr: [ <expression1>, <expression2>, ... ]
}
Die Parameter
| Parameter | Description |
|---|---|
expression1, expression2, ... |
Ausdrücke, die als ganze Zahlen ausgewertet werden. Der $bitOr Operator führt einen bitweisen OR-Vorgang für alle bereitgestellten Ausdrücke aus. |
Examples
Betrachten Sie dieses Beispieldokument aus der Stores-Sammlung.
{
"_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
}
]
}
]
}
Beispiel 1: Grundlegender bitweiser ODER-Vorgang
Diese Abfrage führt einen bitweisen OR-Vorgang für die Mitarbeiterwerte eines bestimmten Speicherdokuments aus, um Berechtigungskennzeichnungen zu kombinieren. Das bitweise ODER von 3 (011 in binär) und 2 (010 in binär) entspricht 3 (011 in binär).
db.stores.aggregate([{
$match: {
_id: "f2a8c190-28e4-4e14-9d8b-0256e53dca66"
}
},
{
$project: {
name: 1,
fullTimeStaff: "$staff.totalStaff.fullTime",
partTimeStaff: "$staff.totalStaff.partTime",
combinedStaffFlag: {
$bitOr: ["$staff.totalStaff.fullTime", "$staff.totalStaff.partTime"]
}
}
}
])
Diese Abfrage gibt das folgende Ergebnis zurück.
[
{
"_id": "f2a8c190-28e4-4e14-9d8b-0256e53dca66",
"name": "Fabrikam, Inc. | Car Accessory Outlet - West Adele",
"fullTimeStaff": 3,
"partTimeStaff": 2,
"combinedStaffFlag": 3
}
]
Beispiel 2: Mehrere Werte bitweise ODER mit Rabattprozentsätzen
Diese Abfrage extrahiert Rabattdetails für ein bestimmtes Promotionsereignis und berechnet ein bitweises Flag, das Rabatte und Mitarbeiterwerte kombiniert. Die Ausgabe zeigt die Ergebnisse der Aggregationsabfrage an, die ein kombiniertes bitweises Flag für jeden Rabatt im Ereignis Super Saver Spectacularberechnet. Der Vorgang kombiniert Rabattprozentsätze mit Personalnummern mit bitweiseM OR: 7|3|2 = 7 und 11|3|2 = 11.
db.stores.aggregate([{
$match: {
_id: "f2a8c190-28e4-4e14-9d8b-0256e53dca66"
}
},
{
$unwind: "$promotionEvents"
},
{
$match: {
"promotionEvents.eventName": "Super Saver Spectacular"
}
},
{
$project: {
name: 1,
eventName: "$promotionEvents.eventName",
discountFlags: {
$map: {
input: "$promotionEvents.discounts",
as: "discount",
in: {
categoryName: "$$discount.categoryName",
discountPercentage: "$$discount.discountPercentage",
combinedFlag: {
$bitOr: [
"$$discount.discountPercentage",
"$staff.totalStaff.fullTime",
"$staff.totalStaff.partTime"
]
}
}
}
}
}
}
])
Diese Abfrage gibt das folgende Ergebnis zurück.
[
{
"_id": "f2a8c190-28e4-4e14-9d8b-0256e53dca66",
"name": "Fabrikam, Inc. | Car Accessory Outlet - West Adele",
"eventName": "Super Saver Spectacular",
"discountFlags": [
{
"categoryName": "Car Chargers",
"discountPercentage": 7,
"combinedFlag": 7
},
{
"categoryName": "Dash Cameras",
"discountPercentage": 11,
"combinedFlag": 11
}
]
}
]