ZBLOG

golang 操作 MongoDB,对 hello 集合进行 upsert 操作,条件为 a=1,b=2, 若满足条件则更新 c 为3,d 为4,如果不满足条件则,直接插入,a,b,c,d字段,写个 demo

以下是一个示例的Go代码,演示如何使用mgo库进行MongoDB操作,并执行upsert操作:

package main

import (
	"fmt"
	"gopkg.in/mgo.v2"
	"gopkg.in/mgo.v2/bson"
)

type Hello struct {
	A int    `bson:"a"`
	B int    `bson:"b"`
	C int    `bson:"c"`
	D string `bson:"d"`
}

func main() {
	session, err := mgo.Dial("mongodb://localhost:27017")
	if err != nil {
		fmt.Println("连接MongoDB失败:", err)
		return
	}
	defer session.Close()

	collection := session.DB("your_db_name").C("hello")

	query := bson.M{"a": 1, "b": 2}
	update := bson.M{"$set": bson.M{"c": 3, "d": "4"}}

	changeInfo, err := collection.Upsert(query, update)
	if err != nil {
		fmt.Println("执行upsert操作失败:", err)
		return
	}

	if changeInfo.Updated > 0 || changeInfo.UpsertedId != nil {
		fmt.Println("更新或插入成功")
	} else {
		fmt.Println("未满足条件,未进行更新或插入")
	}
}

请确保已经安装了gopkg.in/mgo.v2包(使用go get gopkg.in/mgo.v2命令安装),然后根据实际情况修改连接字符串和数据库集合名。运行此代码将进行upsert操作,根据条件判断是否更新现有记录或插入新记录。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=15298

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?