使用Golang调用findOne mongodb时丢失数据

时间:2019-06-04 18:05:43

标签: mongodb go

我正在尝试从mongodb获取数据到golang程序。但是我不知道为什么接收到的数据不完整。

package main

import (
    "context"
    "fmt"
    "log"
    "go.mongodb.org/mongo-driver/bson"
    "go.mongodb.org/mongo-driver/mongo"
    "go.mongodb.org/mongo-driver/mongo/options"
)

func main() {
    ctx := context.Background()
    clientOptions := options.Client().ApplyURI("mongodb://localhost:27017")
    client, err := mongo.Connect(ctx, clientOptions)
    if err != nil {
        log.Fatal(err)
    }
    err = client.Ping(ctx, nil)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println("Connected to MongoDB!")
    db := client.Database("testDB")
    col := db.Collection("testcs")

    type Dataa struct {
        ID        bson.RawValue `bson:"_id"`
        data      string        `bson:"data"`
        number    int           `bson:"number"`
    }
    filter := bson.M{"number": 2}
    var p Dataa
    if err := col.FindOne(ctx, filter).Decode(&p); err != nil {
        log.Fatal(err)
    } 
    fmt.Printf("post: %+v\n", p)
}

接收的数据是: 帖子:{ID:{“ $ oid”:“ 5cf64ca8d95df708be0ed503”}数据:number:0}

但是“数据”值应为“ ABCEX”,“数字”值应为2 就像我添加到mongodb中一样。

你们能帮助我找出问题所在吗?谢谢!

0 个答案:

没有答案