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
En suivant ces instructions, vous pouvez créer efficacement des requêtes OR/AND imbriquées dans Go à l'aide du pilote MongoDB.
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