所以我对数据库(mongodb)有一些查询,它将按值字段对结果进行排序。
all := EValues{}
err := con.Find(bson.M{"name": "somename}).Sort("-value").All(&all)
这个 Json 输出看起来像:
"values": [
{
"user_name": "guest7485",
"value": 8911,
"value_date": "2016-03-09T14:40:34.512Z"
},
{
"user_name": "guest7485",
"value": 539,
"value_date": "2016-03-07T14:11:05.217Z"
},
{
"user_name": "guest7485",
"value": 221,
"value_date": "2016-03-07T14:11:08.853Z"
},
{
"user_name": "guest7485",
"value": 77,
"value_date": "2016-03-07T14:11:12.377Z"
}
]
在我的 json 响应中,我需要为所有结果添加参数“位置”,它应该基本上等于 1 - 第一个结果,2 - 第二个结果等等。所以我的最终输出应该是:
"values": [
{
"position": 1,
"user_name": "guest7485",
"value": 8911,
"value_date": "2016-03-09T14:40:34.512Z"
},
{
"position": 2,
"user_name": "guest7485",
"value": 539,
"value_date": "2016-03-07T14:11:05.217Z"
},
{
"position": 3,
"user_name": "guest7485",
"value": 221,
"value_date": "2016-03-07T14:11:08.853Z"
},
{
"position": 4,
"user_name": "guest7485",
"value": 77,
"value_date": "2016-03-07T14:11:12.377Z"
}
]
我想知道如何用 mgo 来解决这个问题,并且一般来说,如果有人能给我最有效的方法来解决这个问题,我会非常高兴。
更新:
Evalues 的定义如下:
type EValue struct {
ID bson.ObjectId `json:"-" bson:"_id,omitempty"`
Name string `json:"-" bson:"name"`
UserId bson.ObjectId `json:"-" bson:"userId"`
UserName string `json:"user_name" bson:"userName"`
Value int64 `json:"value" bson:"value"`
AddedTime time.Time `json:"value_date" bson:"addedTime"`
}
type EValues []EValue
蝴蝶不菲
一只萌萌小番薯
相关分类