本文整理匯總了Golang中database/cassandra.KeyRange.RowFilter方法的典型用法代碼示例。如果您正苦於以下問題:Golang KeyRange.RowFilter方法的具體用法?Golang KeyRange.RowFilter怎麽用?Golang KeyRange.RowFilter使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類database/cassandra.KeyRange
的用法示例。
在下文中一共展示了KeyRange.RowFilter方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: GetMemberDetailByUsername
// Retrieve a specific members detailed membership data, but fetch it by the
// user name of the member.
func (m *MembershipDB) GetMemberDetailByUsername(username string) (
*MembershipAgreement, error) {
var member *MembershipAgreement = new(MembershipAgreement)
var cp *cassandra.ColumnParent = cassandra.NewColumnParent()
var pred *cassandra.SlicePredicate = cassandra.NewSlicePredicate()
var kr *cassandra.KeyRange = cassandra.NewKeyRange()
var expr *cassandra.IndexExpression = cassandra.NewIndexExpression()
var r []*cassandra.KeySlice
var ks *cassandra.KeySlice
var err error
expr.ColumnName = []byte("username")
expr.Op = cassandra.IndexOperator_EQ
expr.Value = []byte(username)
cp.ColumnFamily = "members"
pred.ColumnNames = [][]byte{[]byte("pb_data")}
kr.StartKey = []byte(memberPrefix)
kr.EndKey = []byte(memberEnd)
kr.RowFilter = []*cassandra.IndexExpression{expr}
r, err = m.conn.GetRangeSlices(
cp, pred, kr, cassandra.ConsistencyLevel_ONE)
if err != nil {
return nil, err
}
for _, ks = range r {
var cos *cassandra.ColumnOrSuperColumn
for _, cos = range ks.Columns {
var col = cos.Column
if string(col.Name) == "pb_data" {
member = new(MembershipAgreement)
err = proto.Unmarshal(col.Value, member)
return member, nil
} else {
return nil, errors.New("Unexpected column " +
string(col.Name))
}
}
}
return nil, errors.New("Not found")
}