Maison > développement back-end > Golang > le corps du texte

Comment rechercher un document par _id en utilisant bson.RawValue dans mongo-go-driver ?

Barbara Streisand
Libérer: 2024-10-31 18:10:48
original
1018 Les gens l'ont consulté

How to Find a Document by _id Using bson.RawValue in mongo-go-driver?

Recherche d'un document par _id à l'aide de mongo-go-driver

Dans mongo-go-driver, vous pouvez trouver un document par son champ _id généré automatiquement. Cependant, un problème peut survenir lorsque le champ _id est fourni en tant que bson.RawValue.

Utilisation de bson.RawValue pour _id

L'extrait de code fourni tente de trouver un document à l'aide d'un bson.RawValue objet, mais il ne renvoie rien. Pour remédier à cela, convertissez la RawValue en un ObjectID à l'aide de primitive.ObjectIDFromHex.

<code class="go">import (
    "context"
    "encoding/hex"
    "encoding/json"

    "go.mongodb.org/mongo-driver/bson"
    "go.mongodb.org/mongo-driver/bson/bsoncodec"
    "go.mongodb.org/mongo-driver/bson/bsonprimitive"
    "go.mongodb.org/mongo-driver/mongo"
)

func findDocumentByID(collection *mongo.Collection, ctx context.Context, id string) (*bson.Raw, error) {
    objID, err := bsonprimitive.ObjectIDFromHex(id)
    if err != nil {
        return nil, err
    }

    value := collection.FindOne(ctx, bson.M{"_id": objID})
    return value.DecodeBytes()
}</code>
Copier après la connexion

Exemple d'utilisation

Considérez le document suivant dans votre base de données MongoDB :

<code class="json">{
  "_id": "5c7452c7aeb4c97e0cdb75bf",
  "name": "John Doe",
  "age": 30
}</code>
Copier après la connexion

Pour trouver ce document à l'aide de la fonction ci-dessus, fournissez le _id comme string:

<code class="go">id := "5c7452c7aeb4c97e0cdb75bf"
value, err := findDocumentByID(collection, ctx, id)
if err != nil {
  return nil, err
}</code>
Copier après la connexion

La variable valeur contiendra désormais les octets décodés du document trouvé.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!