mongodb findoneandupdate golang

在 Golang 中使用 MongoDB 的 findOneAndUpdate() 方法,需要先导入 "go.mongodb.org/mongo-driver/mongo" 包。

下面是一个使用 findOneAndUpdate() 方法更新单个文档的示例:

package main
import (
    "context"
    "fmt"
    "go.mongodb.org/mongo-driver/bson"
    "go.mongodb.org/mongo-driver/mongo"
    "go.mongodb.org/mongo-driver/mongo/options"
func main() {
    client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI("mongodb://localhost:27017"))
    if err != nil {
        fmt.Println(err)
        return
    collection := client.Database("test").Collection("users")
    filter := bson.M{"name": "John"}
    update := bson.M{"$set": bson.M{"age": 30}}
    opts := options.FindOneAndUpdate().SetReturnDocument(options.After)
    var result bson.M
    err = collection.FindOneAndUpdate(context.TODO(), filter, update, opts).Decode(&result)
    if err != nil {
        fmt.Println(err)
        return
    fmt.Println(result)

在上面的代码中,我们使用了 bson.Moptions.FindOneAndUpdate().SetReturnDocument(options.After) 。这样做会返回更新后的文档。

请注意,如果没有找到匹配的文档,findOneAndUpdate() 方法将返回 "mongo: no documents in result" 错误。

  •