ZRangeByScore

返回指定bucket有序集合的分数start到end的范围(包括start和end)的所有元素。其中有个Opts参数用法参考ZCount

  1. // ZAdd
  2. if err := db.Update(
  3. func(tx *nutsdb.Tx) error {
  4. bucket := "myZSet3"
  5. key1 := []byte("key1")
  6. return tx.ZAdd(bucket, key1, 70, []byte("val1"))
  7. }); err != nil {
  8. log.Fatal(err)
  9. }
  10. if err := db.Update(
  11. func(tx *nutsdb.Tx) error {
  12. bucket := "myZSet3"
  13. key2 := []byte("key2")
  14. return tx.ZAdd(bucket, key2, 90, []byte("val2"))
  15. }); err != nil {
  16. log.Fatal(err)
  17. }
  18. if err := db.Update(
  19. func(tx *nutsdb.Tx) error {
  20. bucket := "myZSet3"
  21. key3 := []byte("key3")
  22. return tx.ZAdd(bucket, key3, 86, []byte("val3"))
  23. }); err != nil {
  24. log.Fatal(err)
  25. }
  26. // ZRangeByScore
  27. if err := db.View(
  28. func(tx *nutsdb.Tx) error {
  29. bucket := "myZSet3"
  30. if nodes, err := tx.ZRangeByScore(bucket, 80, 100,nil); err != nil {
  31. return err
  32. } else {
  33. fmt.Println("ZRangeByScore nodes :", nodes)
  34. for _, node := range nodes {
  35. fmt.Println("item:", node.Key(), node.Score())
  36. }
  37. //item: key3 86
  38. //item: key2 90
  39. }
  40. return nil
  41. }); err != nil {
  42. log.Fatal(err)
  43. }