"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment construire des requêtes OR/AND imbriquées avec le pilote MongoDB Go ?

Comment construire des requêtes OR/AND imbriquées avec le pilote MongoDB Go ?

Publié le 2025-01-11
Parcourir:452

How to Construct Nested OR/AND Queries with the MongoDB Go Driver?

Requêtes logiques imbriquées avec le pilote MongoDB Go

Les requêtes MongoDB nécessitent souvent l'utilisation d'opérateurs logiques imbriqués (AND/OR) pour filtrer les documents en fonction sur plusieurs critères. Dans le pilote Go MongoDB, des requêtes logiques imbriquées peuvent être construites à l'aide des types bson.D et bson.M.

Construction de requêtes OR/AND imbriquées

Pour créer un requête OR/AND imbriquée, vous devez utiliser le type bson.D pour représenter l'opérateur logique externe (par exemple, $and) et y transmettre les éléments bson.E. Chaque élément bson.E représente une paire champ-valeur, où le nom du champ peut être l'opérateur logique (par exemple, $or) et la valeur peut être un bson.D ou un bson.A (pour les tableaux).

Exemple de requête OR/AND imbriquée

Considérez la requête MongoDB :

{
  "$and": {
    "p": 10,
    "$or": {
      "s": 30,
      "a": 1
    }
  }
}

Pour représenter cette requête dans Go à l'aide du pilote MongoDB, vous pouvez utiliser le code suivant :

filter := bson.D{
    {"p", 10},
    {"$or", bson.A{
        bson.D{{"s", 30}},
        bson.D{{"a", 1}},
    }},
}

Dans cet exemple, le bson.D représente l'opérateur $and externe, et le bson.A représente l'opérateur $or imbriqué. Chaque bson.D dans $or représente une sous-requête.

Utilisation de bson.M pour les requêtes imbriquées

Vous pouvez également utiliser le type bson.M pour représenter requêtes imbriquées. bson.M est une map[string]interface{} qui peut contenir des noms de champs et leurs valeurs correspondantes. La valeur peut être une autre instance de bson.M, représentant une requête imbriquée.

Par exemple, la requête ci-dessus peut être représentée à l'aide de bson.M comme suit :

filter := bson.M{
    "p": 10,
    "$or": bson.A{
        bson.M{"s": 30},
        bson.M{"a": 1},
    },
}

Recommandations

  • Pour représenter un tableau au sein d'un opérateur logique, utilisez bson.A (par exemple, bson.A{bson.M{"foo" : 1}}).
  • $and est l'opérateur logique par défaut, il n'est donc pas nécessaire de l'inclure explicitement dans le requête.

En suivant ces instructions, vous pouvez créer efficacement des requêtes OR/AND imbriquées dans Go à l'aide du pilote MongoDB.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3