使用Golang中的mongo驱动程序时,以下两个代码之间有什么区别?

huangapple go评论82阅读模式
英文:

What is the difference between the following two codes when using mongo driver in Golang?

问题

目前我正在进行一个项目,我正在寻找更好的源代码方式。我想知道有什么不同之处。

func (db *Database) FindData(ctx context.Context, filter *Data) (*Data, error) {
    col := db.client.Database(DefaultDatabase).Collection(COLLECTION_DATA)

    var data Data
    err := col.FindOne(ctx, filter).Decode(&data)
    if err != nil {
        return nil, err
    }

    return &data, nil
}

func (db *Database) FindData(ctx context.Context, filter *Data) (*Data, error) {
    col := db.client.Database(DefaultDatabase).Collection(COLLECTION_DATA)

    res := col.FindOne(ctx, filter)
    if err := res.Err(); err != nil {
        return nil, err
    }

    var data Data
    err := res.Decode(&data)

    return &data, err
}

可能的差异是什么,哪个代码更好?

英文:

Currently I'm working on a project, and I'm looking for a better way to source code.
I wonder What is Different,

func (db *Database) FindData(ctx context.Context, filter *Data) (*Data, error) {
    col := db.client.Database(DefaultDatabase).Collection(COLLECTION_DATA)

    var data Data
    err := col.FindOne(ctx, filter).Decode(&data)
    if err != nil {
	    return nil, err
    }

    return &data, nil
}

and

func (db *Database) FindData(ctx context.Context, filter *Data) (*Data, error) {
    col := db.client.Database(DefaultDatabase).Collection(COLLECTION_DATA)


    res := col.FindOne(ctx, filter)
    if err:= res.Err(); err != nil {
	    return nil, err
    }

    var data Data
    err := res.Decode(&reason)

    return &data, err
}

What are the possible differences, and which code is better?

答案1

得分: 0

我验证了两个来源是相同的,并意识到我不需要使用长版本。

没有必要实现错误处理,因为对应结果的错误处理是在Decode()中进行的。

谢谢评论 使用Golang中的mongo驱动程序时,以下两个代码之间有什么区别? Burak Serdar

英文:

I verified that both sources were the same, and realized that I didn't have to use the long version.

There is no need to implement ERROR processing because ERROR processing of the corresponding result is carried out in Decode().

Thanks for Comment 使用Golang中的mongo驱动程序时,以下两个代码之间有什么区别? Burak Serdar

huangapple
  • 本文由 发表于 2022年8月9日 11:10:47
  • 转载请务必保留本文链接:https://go.coder-hub.com/73286133.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定