英文:
How to add more fields to an array in Mongodb, Go?
问题
这是我的Mongodb文档结构。
type Company struct {
Id bson.ObjectId `bson:"_id,omitempty"`
Company_name string
Admin UserMinimal
Process []ProcessItem
}
type ProcessItemMinimal struct {
Id bson.ObjectId `bson:"_id,omitempty"`
Process_name string
Processtype int64
}
type ProcessItem struct {
ProcessItemMinimal `bson:",inline"`
Sortorder int64
}
这是我的Mongodb文档。
{
"_id" : ObjectId("56cd99109096f3b762f4f149"),
"company_name" : "xyz",
"admin" : {
"email" : "kk@kk.kk",
"fullname" : "kk"
},
"process" : [
{
"process_name" : "Enquiry",
"processtype" : NumberLong(0),
"sortorder" : NumberLong(0)
},
{
"process_name" : "Converted",
"processtype" : NumberLong(1),
"sortorder" : NumberLong(1)
},
{
"process_name" : "MileStone 1",
"processtype" : NumberLong(1),
"sortorder" : NumberLong(2)
}
]
}
我需要向process数组中添加一个新的"process"。这可能吗?如果可以,我该如何在mgo中查询它?
英文:
These are my Mongodb document structs.
type Company struct {
Id bson.ObjectId `bson:"_id,omitempty"`
Company_name string
Admin UserMinimal
Process []ProcessItem
}
type ProcessItemMinimal struct {
Id bson.ObjectId `bson:"_id,omitempty"`
Process_name string
Processtype int64
}
type ProcessItem struct{
ProcessItemMinimal `bson:",inline"`
Sortorder int64
}
This is my mongodb document.
{
"_id" : ObjectId("56cd99109096f3b762f4f149"),
"company_name" : "xyz",
"admin" : {
"email" : "kk@kk.kk",
"fullname" : "kk"
},
"process" : [
{
"process_name" : "Enquiry",
"processtype" : NumberLong(0),
"sortorder" : NumberLong(0)
},
{
"process_name" : "Converted",
"processtype" : NumberLong(1),
"sortorder" : NumberLong(1)
},
{
"process_name" : "MileStone 1",
"processtype" : NumberLong(1),
"sortorder" : NumberLong(2)
}
]
}
I need to add one more "process" to process array. Is it possible? If yes, how can I query that in mgo?
答案1
得分: 2
要将另一个文档插入到数组中,请使用$push。
在mgo中,
// 创建要插入的新的 'ProcessItem' 文档。
newProcess := ProcessItem {
ProcessItemMinimal : processItem,
SortOrder : sortOrder
}
change := bson.M {
"$push": bson.M {
"process": newProcess,
},
}
// 更新必要的 'Company' 文档
companyCollection.UpdateId(company.ID, change)
英文:
To insert another document to the array use $push
In mgo,
// Create the new 'ProcessItem' document you want to insert.
newProcess := ProcessItem {
ProcessItemMinimal : processItem,
SortOrder : sortOrder
}
change := bson.M {
"$push": bson.M {
"process": newProcess,
},
}
// Update the necessary 'Company' document
companyCollection.UpdateId(company.ID, change)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论