MongoDb:如何将附加对象插入到golang中的对象集合中? [英] MongoDb : How to insert additional object into object collection in golang?

查看:177
本文介绍了MongoDb:如何将附加对象插入到golang中的对象集合中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  {

_id:ObjectId(51c9cf2b206dfb73d666ae07),
firstName:john,
lastName:smith,
ownerEmail:john.smith@gmail。
营地:[
{
name:cubs-killeen,
location:killeen
},
{
name:cubs-temple,
location:temple
}
],
教师:[
{
firstName:joe,
lastName:black
},
{
firstName:will,
lastName:smith
}
]
}

并将对象推入上面的文件中需要做

  db。 stack.update({ownerEmail:john.smith@gmail.com},
{$ push:{
camps:{name:cubs-killeen,location :其他地方}
}
}



<那么如何使用 mgo驱动程序来实现相同的功能 尝试以下操作:

  session,err:= mgo.Dial(127.0.0.1)
if err!= nil {
恐慌(错误)
}

推迟session.Close()

session.SetMode(mgo.Monotonic,true)

// Drop Database
ifDrop {
err = session.DB(test)。DropDatabase()
if err!= nil {
panic(err)



//收集堆栈
c:= session.DB(test)。C(stack)

//查询
查询:= bson.M {ownerEmail:john.smith@gmail.com}
更新:= bson.M {$ push:bson.M {camps: bson.M {name:cubs-k 更新
err = c.Update(查询,更新)
if err!= nil {
恐慌(错误)
}


I want just push object into array of objects in mongodb

 {
    "_id" : ObjectId("51c9cf2b206dfb73d666ae07"),
    "firstName" : "john",
    "lastName" : "smith",
    "ownerEmail" : "john.smith@gmail.com",
    "camps" : [
            {
                    "name" : "cubs-killeen",
                    "location" : "killeen"
            },
            {
                    "name" : "cubs-temple",
                    "location" : "temple"
            }
    ],
    "instructors" : [
            {
                    "firstName" : "joe",
                    "lastName" : "black"
            },
            {
                    "firstName" : "will",
                    "lastName" : "smith"
            }
    ]
}

and to push object into above document in need to do

db.stack.update({"ownerEmail":"john.smith@gmail.com"}, 
             {$push: { 
                        "camps":{ "name":"cubs-killeen","location":"some other Place" } 
                      }
             }
             )

So how can i implement same functionality using mgo driver

解决方案

Try the following:

session, err := mgo.Dial("127.0.0.1")
if err != nil {
    panic(err)
}

defer session.Close()

session.SetMode(mgo.Monotonic, true)

// Drop Database
if IsDrop {
    err = session.DB("test").DropDatabase()
    if err != nil {
        panic(err)
    }
}

// Collection Stack
c := session.DB("test").C("stack")

// Query
query := bson.M{"ownerEmail": "john.smith@gmail.com"}
update := bson.M{"$push": bson.M{"camps": bson.M{"name": "cubs-killeen", "location": "some other Place"}}}

// Update
err = c.Update(query, update)
if err != nil {
    panic(err)
}

这篇关于MongoDb:如何将附加对象插入到golang中的对象集合中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆