package main
import (
"log"
mgo "gopkg.in/mgo.v2"
)
var conn = dao.New().GetConn()
var testDBC = conn.DB("test").C("test")
type Person struct {
Name string `bson:"name,omitempty"`
Age int `bson:"age,omitempty"`
Score int `bson:"score,omitempty"`
}
type M map[string]interface{}
type S string
type I interface{}
func errFatal(err error) {
if err != nil {
log.Fatal(err)
}
}
type C struct {
A `bson:",inline"`
B `bson:",inline"`
}
type B struct {
Value string `form:"b" json:"b" bson:"b,omitempty" text:"b"`
}
func (v *B) Set(value string) {
v.Value = value
}
func (v *B) Get() string {
return v.Value
}
type A struct {
Value string `form:"a" json:"a" bson:"a,omitempty" text:"a"`
}
func (v *A) Set(value string) {
v.Value = value
}
func (v *A) Get() string {
return v.Value
}
func main() {
// 建立一次即可
errFatal(testDBC.EnsureIndex(mgo.Index{Key: []string{"a"}, Unique: true}))
c := new(C)
c.A.Set("5")
errFatal(testDBC.Insert(c))
errFatal(testDBC.Insert(c))
}
第二次插入数据报错
2018/11/23 13:18:40 E11000 duplicate key error collection: test.test index: a_1 dup key: { : "5" }
网友评论