【发布时间】:2018-05-15 13:58:36
【问题描述】:
使用聚合我正在使用 golang 加入两个 mongodb 集合。结果如下:-
输出:-
{
"response": {
"code": 1,
"api_status": 1,
"message": "Success",
"total_record": [
{
"_id": 1,
"author_name": "mohit",
"category": 232,
"content": "This is the content",
"date_time": 1524632713,
"excerpt": "This is a short text",
"image": "pic.jpg",
"resultField": [
{
"_id": 6,
"comment": "this is a least comment",
"comment_on": 1524644601,
"email": "puneet@bookingkoala.com",
"name": "puneet",
"post_id": 1,
"reply_to": 1524644601,
"status": 1
},
{
"_id": 7,
"comment": "this is a least comment",
"comment_on": 1524647808,
"email": "puneet@bookingkoala.com",
"name": "puneet",
"post_id": 1,
"reply_to": 1524647808,
"status": 1
}
],
"status": 0,
"tags": "this",
"title": "how to do the code"
},
{
"_id": 2,
"author_name": "mohit",
"category": 232,
"content": "This is the content",
"date_time": 1524632713,
"excerpt": "This is a short text",
"image": "pic.jpg",
"resultField": [
{
"_id": 8,
"comment": "this is a least comment",
"comment_on": 1524648059,
"email": "puneet@bookingkoala.com",
"name": "puneet",
"post_id": 2,
"reply_to": 1524648059,
"status": 1
}
],
"status": 0,
"tags": "this",
"title": "how to do the code"
},
{
"_id": 3,
"author_name": "puneet",
"category": 2,
"content": "this is content",
"date_time": 1524641086,
"excerpt": "this is excerpt",
"image": "pic.jpg",
"resultField": [],
"status": 1,
"tags": "go",
"title": "how to do the code"
}
]
}
}
这个输出是由下面的golang代码获取的:-
mongoSession := config.ConnectDb()
collection := mongoSession.DB(config.Database).C(config.BlogCollection)
pipeline := []bson.M{
bson.M{"$match": bson.M{}},
bson.M{"$lookup": bson.M{"from" : "comment", "localField" : "_id", "foreignField": "post_id","as": "resultField" }},
}
fmt.Println(pipeline)
pipe := collection.Pipe(pipeline)
resp := []bson.M{}
err = pipe.All(&resp)
if err != nil {
fmt.Println("Errored: %#v \n", err)
}
fmt.Println(resp)
if err != nil {
response = ResponseControllerList{
config.FailureCode,
config.FailureFlag,
config.FailureMsg,
nil,
nil,
}
} else {
response = ResponseControllerList{
config.SuccessFlag,
config.SuccessFlag,
config.SuccessMsg,
nil,
resp,
}
}
问题是:- 我只需要data 中的count 不需要 data。如上所示的输出中的意思是 resultField 显示数据,但我只需要 count 值,如:- "resultField":[2] 但它显示数据。如何获取输出中数据的计数值。提前谢谢你。
【问题讨论】: