package main
|
|
import (
|
"context"
|
"fmt"
|
"log"
|
|
"go.mongodb.org/mongo-driver/bson"
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
"go.mongodb.org/mongo-driver/mongo"
|
)
|
|
type X struct {
|
ID primitive.ObjectID `bson:"_id,omitempty"`
|
Name string `bson:"name"`
|
}
|
|
func main() {
|
ctx := context.Background()
|
|
client, err := mongo.Connect(ctx)
|
if err != nil {
|
log.Fatal(err)
|
}
|
|
coll := client.Database("test").Collection("decodeit")
|
_ = coll.Drop(ctx)
|
|
doc := X{Name: "hello world"}
|
res, err := coll.InsertOne(ctx, doc)
|
if err != nil {
|
log.Fatal(err)
|
}
|
id := res.InsertedID
|
fmt.Println("Inserted", id)
|
|
got := coll.FindOne(ctx, bson.D{{"_id", id}})
|
if got.Err() != nil {
|
log.Fatal(got.Err())
|
}
|
|
var doc2 X
|
err = got.Decode(&doc2)
|
if err != nil {
|
log.Fatalf("doc2 %v", err)
|
}
|
fmt.Println("Doc2", doc2)
|
|
var doc3 X
|
err = got.Decode(&doc3)
|
if err != nil {
|
log.Fatalf("doc3 %v", err)
|
}
|
fmt.Println("Doc3", doc3)
|
}
|