Maison >développement back-end >Golang >Comment filtrer des champs spécifiques des documents MongoDB à l'aide du pilote Mongo-Go-Driver ?

Comment filtrer des champs spécifiques des documents MongoDB à l'aide du pilote Mongo-Go-Driver ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-19 03:55:12896parcourir

How to Filter Specific Fields from MongoDB Documents using the Mongo-Go-Driver?

Filtrage des champs des documents MongoDB avec Mongo-Go-Driver

Pour filtrer des champs spécifiques d'un document MongoDB à l'aide de Mongodb-Go-Driver, l'option findopt.Projection peut être utilisée. Cependant, dans le code que vous avez fourni, le problème survient car le champ _id dans la structure des champs n'est pas exporté (commençant par une lettre minuscule).

Solution révisée :

Pour résoudre ce problème, le nom du champ doit être exporté (en commençant par une lettre majuscule) et utiliser des balises struct pour le mapper au champ MongoDB _id. Le code mis à jour :

type fields struct {
    ID int `bson:"_id"`
}

Projection à l'aide de l'option de projection :

Pour effectuer une requête avec projection, utilisez la méthode options.FindOne().SetProjection(projection) , où projection représente les champs que vous souhaitez récupérer.

Mise à jour Code :

projection := fields{
    ID: 0,
}
result := staCon.collection.FindOne(
    nil, filter, options.FindOne().SetProjection(projection)).Decode(s)

Utilisation alternative de bson.Document :

Alternativement, un bson.Document peut être utilisé comme projection :

projection := bson.NewDocument(
    bson.EC.Int32("_id", 0),
)
result := staCon.collection.FindOne(
    nil, filter, options.FindOne().SetProjection(projection)).Decode(s)

En utilisant ces approches, vous pouvez filtrer des champs spécifiques des documents MongoDB, en supprimant les champs inutiles tels que _id si souhaité.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn