Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’opérateur $bitsAllSet est utilisé pour faire correspondre les documents où toutes les positions de bits spécifiées sont définies (autrement dit, 1). Cet opérateur est utile pour effectuer des opérations au niveau du bit sur les champs qui stockent des valeurs entières. Il peut être utilisé dans les scénarios où vous devez filtrer des documents en fonction des bits spécifiques définis dans un champ entier.
Syntaxe
{
<field>: { $bitsAllSet: <bitmask> }
}
Paramètres
| Paramètre | Descriptif |
|---|---|
field |
Champ du document sur lequel l’opération au niveau du bit doit être effectuée. |
<bitmask> |
Masque de bits indiquant quels bits doivent être définis dans la valeur du champ. |
Examples
Considérez cet exemple de document de la collection des magasins.
{
"_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
}
]
}
]
}
Le storeFeatures champ est un entier de masque de bits représentant différentes fonctionnalités de magasin. Chaque bit correspond à une fonctionnalité :
| bit | Valeur | Caractéristique |
|---|---|---|
| 0 | 1 | In-Store enlèvement |
| 1 | 2 | Stationnement |
| 2 | 4 | Accès en fauteuil roulant |
| 3 | 8 | Ouvrir 24 heures |
| 4 | 16 | Pet-Friendly |
| 5 | 32 | Wi-Fi gratuit |
| 6 | 64 | Toilettes |
| 7 | 128 | Livraison à domicile |
Exemple 1 : Rechercher des magasins qui disposent d’un parking et d’une salle de repos
Cette requête récupère les magasins qui ont des toilettes ET de stationnement (bits 1 et 6)
db.stores.find({
storeFeatures: {
$bitsAllSet: [1, 6]
}
}, {
_id: 1,
name: 1,
storeFeatures: 1
}).limit(5)
Équivalent:
db.stores.find({
storeFeatures: {
$bitsAllSet: 66
}
}, {
_id: 1,
name: 1,
storeFeatures: 1
}).limit(5)
Les cinq premiers résultats retournés par cette requête sont les suivants :
[
{
"_id": "7e53ca0f-6e24-4177-966c-fe62a11e9af5",
"name": "Contoso, Ltd. | Office Supply Deals - South Shana",
"storeFeatures": 86
},
{
"_id": "44fdb9b9-df83-4492-8f71-b6ef648aa312",
"name": "Fourth Coffee | Storage Solution Gallery - Port Camilla",
"storeFeatures": 222
},
{
"_id": "728c068a-638c-40af-9172-8ccfa7dddb49",
"name": "Contoso, Ltd. | Book Store - Lake Myron",
"storeFeatures": 239
},
{
"_id": "a2b54e5c-36cd-4a73-b547-84e21d91164e",
"name": "Contoso, Ltd. | Baby Products Corner - Port Jerrold",
"storeFeatures": 126
},
{
"_id": "dda2a7d2-6984-40cc-bbea-4cbfbc06d8a3",
"name": "Contoso, Ltd. | Home Improvement Closet - Jaskolskiview",
"storeFeatures": 107
}
]
Contenu connexe
- Passez en revue les options de migration de MongoDB vers Azure DocumentDB.
- En savoir plus sur la compatibilité des fonctionnalités avec MongoDB.