Maison >développement back-end >Golang >Comment construire des requêtes OR/AND imbriquées avec le pilote MongoDB Go ?
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 transmettre les éléments bson.E dans il. 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 MongoDB requête :
{ "$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 le $ externe et l'opérateur, 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
En suivant ces directives, vous pouvez créer efficacement des requêtes OR/AND imbriquées dans Go à l'aide du pilote MongoDB.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!