에 나는이 같은 MongoDB를 수집 것을해야하는 방법 : 그것이 "device_id"
에 의해 별개로 내가 원하는MongoDB를 집계가 golang
{ "_id" : ObjectId("5a017ee061313781045889ea"), "device_id" : "1232213", "value" : "23233", "pubtime" : ISODate("2017-11-07T09:37:37.006Z") }
{ "_id" : ObjectId("5a017f7b61313781045889eb"), "device_id" : "1111", "value" : "23233", "pubtime" : ISODate("2017-11-07T09:40:11.204Z") }
{ "_id" : ObjectId("5a017fdd61313781045889ec"), "device_id" : "12222", "value" : "23233", "pubtime" : ISODate("2017-11-07T09:41:49.452Z") }
{ "_id" : ObjectId("5a017ff561313781045889ed"), "device_id" : "1232213", "value" : "23233", "pubtime" : ISODate("2017-11-07T09:42:13.658Z") }
및 "pubtime"
하여 정렬합니다.
나는 골란이 그것을하기 위해 파이프를 사용할 수 있음을 알고 있습니다. 그러나 나는 그것을 어떻게하는지 모른다. 내가 시도한 것 :
o1 := bson.M{"_id": bson.M{"device_id": "$device_id"}}
o2 := bson.M{"pubtime": bson.M{"$last": "$pubtime"}}
o3 := bson.M{"$group": []bson.M{o1, o2}}
pipe := c.Pipe([]bson.M{o3})
var result = []bson.M{}
_ = pipe.All(&result)
fmt.Println(result)
결과가 비어 있습니다.
는 MongoDB를에 괜찮 :
db.collections.aggregate({"$group":
{"_id":{"device_id":"$device_id"},
"pubtime":{"$last": "$pubtime"} ,
"value":{"$last": "$value"} ,
}});