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.
Cet opérateur est utilisé pour sélectionner des documents dans lesquels l’une des positions de bits spécifiées est définie 1sur . Il est utile d’interroger des documents avec des champs qui stockent des valeurs de masque de bits. Cet opérateur peut être pratique lors de l’utilisation de champs qui représentent plusieurs indicateurs booléens dans un entier unique.
Syntaxe
{
<field>: { $bitsAnySet: [ <bit positions> ] }
}
Paramètres
| Paramètre | Descriptif |
|---|---|
field |
Champ à interroger. |
<bit positions> |
Tableau de positions de bits à vérifier si une valeur est définie 1. |
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 les magasins qui ont un enlèvement en magasin ou un drive-thru
Cette requête récupère les magasins qui offrent une livraison à domicile ou une Wi-Fi gratuite (bits 5 et 7)
db.stores.find({
storeFeatures: {
$bitsAnySet: [5, 7]
}
}, {
_id: 1,
name: 1,
storeFeatures: 1
}).limit(5)
Équivalent:
db.stores.find({
storeFeatures: {
$bitsAnySet: 160
}
}, // 32 + 128
{
_id: 1,
name: 1,
storeFeatures: 1
}).limit(5)
Les cinq premiers résultats retournés par cette requête sont les suivants :
[
{
"_id": "a715ab0f-4c6e-4e9d-a812-f2fab11ce0b6",
"name": "Lakeshore Retail | Holiday Supply Hub - Marvinfort",
"storeFeatures": 38
},
{
"_id": "44fdb9b9-df83-4492-8f71-b6ef648aa312",
"name": "Fourth Coffee | Storage Solution Gallery - Port Camilla",
"storeFeatures": 222
},
{
"_id": "94792a4c-4b03-466b-91f6-821c4a8b2aa4",
"name": "Fourth Coffee | Eyewear Shop - Lessiemouth",
"storeFeatures": 225
},
{
"_id": "728c068a-638c-40af-9172-8ccfa7dddb49",
"name": "Contoso, Ltd. | Book Store - Lake Myron",
"storeFeatures": 239
},
{
"_id": "e6410bb3-843d-4fa6-8c70-7472925f6d0a",
"name": "Relecloud | Toy Collection - North Jaylan",
"storeFeatures": 108
}
]
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.