英文:
Find out result of inserting object using mgo in Go
问题
我想问一下,使用集合插入新对象时,是否有办法找出插入是否成功。
使用单个操作进行插入(Insert(object))。
我的意思是,我不想发送另一个查询到数据库来查找记录是否存在。我需要一个单一的原子操作(插入 -> 结果(是否成功)
- 伪代码)。
英文:
I would like to ask you if there is a way to find out if insertion was successful when inserting new object using collection.
Insert(object) with single operation.
What I mean is that, I don't want to send another query to the db to find out if there is a record or not. I need one single atomic operation (insert -> result (isSuccessful)
- pseudo code).
答案1
得分: 1
Insert
方法返回一个表示成功或失败的错误对象。你需要先设置会话的安全模式以启用这种行为。
session.SetSafe(&mgo.Safe{}) // <-- 首先设置安全模式!
c := session.DB("test").C("people")
err = c.Insert(&Person{"Ale", "+55 53 8116 9639"})
if err != nil { // <-- 然后在插入后检查错误!
fmt.Printf("发生错误:%v", err)
} else {
fmt.Print("成功!")
}
英文:
The Insert
method returns an error object that represents it success or failure. You need to set the safe mode of the session first to enable this behaviour.
session.SetSafe(&mgo.Safe{}) // <-- first set safe mode!
c := session.DB("test").C("people")
err = c.Insert(&Person{"Ale", "+55 53 8116 9639"})
if err != nil { // <-- then check error after insert!
fmt.Printf("There was an error: %v", err)
} else {
fmt.Print("Success!")
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论