无法从 mongodb 驱动程序获取任何文档

我正在尝试使用mongo驱动程序进行简单的查询,但结果没有任何结果。InsertOne工作正常,FindOne和Find返回零文档。这是我的代码: // 我的 mongo 适配器结构


package database


import (

    "context"

    "go.mongodb.org/mongo-driver/mongo"

    "go.mongodb.org/mongo-driver/mongo/options"

    "log"

)


var (

    instance * Client

)


type Client struct {

    Client * mongo.Client

    Ctx context.Context

    Database * mongo.Database

}


func(c * Client) construct() {

    var err error

    c.Ctx = context.TODO()

    c.Client, err = mongo.Connect(c.Ctx, options.Client().ApplyURI("mongodb://localhost:27017"))

    if err != nil {

        log.Fatal(err)

    }

    err = c.Client.Ping(context.TODO(), nil)

    if err != nil {

        log.Fatal(err)

    }

    c.Database = c.Client.Database("Foo")

}


func getInstance() * Client{

    if instance == nil {

        instance = new(Client)

        instance.construct()

    }

    return instance

}


克鲁德


package database


import (

    "go.mongodb.org/mongo-driver/bson"

    "go.mongodb.org/mongo-driver/bson/primitive"

    "log"

)


type StateRow struct {

    _id primitive.ObjectID `bson:"_id"`

    Id int `bson:"id"`

    State int `bson:"state"`

}


func GetMessageStateByUserID(id int) int {

    client := getInstance()

    stateCollection := client.Database.Collection("MessageStates")

    var result = StateRow{}

    filter := bson.D{{"id", id}}

    err := stateCollection.FindOne(client.Ctx, filter).Decode(&result)

    if err != nil {

        return 0

    }

    return result.State

}

心有法竹
浏览 95回答 1
1回答

慕姐8265434

您正在将文档插入到集合中,并尝试从 中获取数据。MessagesStatesMessageStates// Getting the data from hereclient.Database.Collection("MessageStates")// Saving the data hereclient.Database.Collection("MessagesStates")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go