func getHistoryByKeyID()

in server/datasource/mongo/history/history_dao.go [56:95]


func getHistoryByKeyID(ctx context.Context, filter bson.M, offset, limit int64) (*model.KVResponse, error) {
	collection := mongo.GetClient().GetDB().Collection(mmodel.CollectionKVRevision)
	opt := options.Find().SetSort(map[string]interface{}{
		"update_revision": -1,
	})
	if limit > 0 {
		opt = opt.SetLimit(limit)
		opt = opt.SetSkip(offset)
	}
	curTotal, err := collection.CountDocuments(ctx, filter)
	if err != nil {
		return nil, err
	}
	cur, err := collection.Find(ctx, filter, opt)
	if err != nil {
		return nil, err
	}
	kvs := make([]*model.KVDoc, 0)
	var exist bool
	for cur.Next(ctx) {
		var elem model.KVDoc
		err := cur.Decode(&elem)
		if err != nil {
			openlog.Error("decode error: " + err.Error())
			return nil, err
		}
		exist = true
		elem.Domain = ""
		elem.Project = ""
		kvs = append(kvs, &elem)
	}
	if !exist {
		return nil, datasource.ErrRevisionNotExist
	}
	result := &model.KVResponse{
		Data:  kvs,
		Total: int(curTotal),
	}
	return result, nil
}