我正在尝试使用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
}
心有法竹
慕姐8265434
随时随地看视频慕课网APP
相关分类