Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
TOEPASBAAR OP:
MongoDB vCore
De $bitNot
operator voert een bitwise NOT-bewerking uit op gehele getallen. Het keert alle bits van de operand om, waarbij 1's worden omgezet in 0's en 0s in 1s. Het resultaat is het bitsgewijze complement van de invoerwaarde.
Syntaxis
De syntaxis voor de $bitNot
operator is als volgt:
{
$bitNot: <expression>
}
Parameterwaarden
Beschrijving | |
---|---|
expression |
Een expressie die resulteert in een geheel getal. De $bitNot operator voert een bitwise NOT-bewerking uit op deze waarde. |
Voorbeeld
Laten we het gebruik begrijpen met voorbeeld-json uit stores
de gegevensset.
{
"_id": "26afb024-53c7-4e94-988c-5eede72277d5",
"name": "First Up Consultants | Microphone Bazaar - South Lexusland",
"location": {
"lat": -29.1866,
"lon": -112.7858
},
"staff": {
"totalStaff": {
"fullTime": 14,
"partTime": 8
}
},
"sales": {
"totalSales": 83865,
"salesByCategory": [
{
"categoryName": "Lavalier Microphones",
"totalSales": 44174
},
{
"categoryName": "Wireless Microphones",
"totalSales": 39691
}
]
},
"promotionEvents": [
{
"eventName": "Incredible Savings Showcase",
"promotionalDates": {
"startDate": {
"Year": 2024,
"Month": 9,
"Day": 21
},
"endDate": {
"Year": 2024,
"Month": 9,
"Day": 29
}
},
"discounts": [
{
"categoryName": "Condenser Microphones",
"discountPercentage": 20
},
{
"categoryName": "Microphone Stands",
"discountPercentage": 17
}
]
}
]
}
Voorbeeld 1: Eenvoudige bitsgewijze NOT-bewerking
Voer een bitsgewijze NOT-bewerking uit op personeelsnummers om omgekeerde vlaggen te maken.
db.stores.aggregate([
{ $match: {"_id": "26afb024-53c7-4e94-988c-5eede72277d5"} },
{
$project: {
name: 1,
fullTimeStaff: "$staff.totalStaff.fullTime",
partTimeStaff: "$staff.totalStaff.partTime",
invertedFullTime: {
$bitNot: "$staff.totalStaff.fullTime"
},
invertedPartTime: {
$bitNot: "$staff.totalStaff.partTime"
}
}
}
])
Dit produceert de volgende uitvoer:
[
{
_id: '26afb024-53c7-4e94-988c-5eede72277d5',
name: 'First Up Consultants | Microphone Bazaar - South Lexusland',
fullTimeStaff: 14,
partTimeStaff: 8,
invertedFullTime: -15,
invertedPartTime: -9
}
]
De bitsgewijze NOT van 14 resulteert in -15 en de bitsgewijze NOT van 8 resulteert in -9. Dit komt door de complementweergave van twee, waarbij ~n = -(n+1).
Voorbeeld 2: $bitNot gebruiken met kortingspercentages
Bitwise NOT-bewerkingen toepassen op kortingspercentages.
db.stores.aggregate([
{ $match: {"_id": "26afb024-53c7-4e94-988c-5eede72277d5"} },
{ $unwind: "$promotionEvents" },
{ $match: {"promotionEvents.eventName": "Incredible Savings Showcase"} },
{ $unwind: "$promotionEvents.discounts" },
{
$project: {
name: 1,
eventName: "$promotionEvents.eventName",
categoryName: "$promotionEvents.discounts.categoryName",
discountPercentage: "$promotionEvents.discounts.discountPercentage",
invertedDiscount: {
$bitNot: "$promotionEvents.discounts.discountPercentage"
}
}
}
])
Dit produceert de volgende uitvoer:
[
{
_id: '26afb024-53c7-4e94-988c-5eede72277d5',
name: 'First Up Consultants | Microphone Bazaar - South Lexusland',
eventName: 'Incredible Savings Showcase',
categoryName: 'Condenser Microphones',
discountPercentage: 20,
invertedDiscount: -21
},
{
_id: '26afb024-53c7-4e94-988c-5eede72277d5',
name: 'First Up Consultants | Microphone Bazaar - South Lexusland',
eventName: 'Incredible Savings Showcase',
categoryName: 'Microphone Stands',
discountPercentage: 17,
invertedDiscount: -18
}
]
Met de bitsgewijze NOT-bewerking worden alle bits omgekeerd: 20 wordt -21 en 17 wordt -18.
Verwante inhoud
- Bekijk de opties voor migreren van MongoDB naar Azure Cosmos DB voor MongoDB (vCore)
- Meer informatie over functiecompatibiliteit met MongoDB