Tile38空间数据库操作命令之SET

简介: Tile38空间数据库操作命令之SET

最近在研究tile38地理空间数据库,下面来介绍一下其中SET命令如何在tile38数据库中使用:

语法

SET key id [FIELD name value ...] [EX seconds] [NX|XX] (OBJECT geojson)|(POINT lat lon z)|(BOUNDS minlat minlon maxlat maxlon)|(HASH geohash)|(STRING value)
复制代码

这个SET语法特别像redis中的hash数据结构的语法,key代表一个大的group,里面可以有很多数据对象,每一个数据对象都对应一个id,所以语法就以SET key id开头。

id后面都属于该数据对象的具体属性,比如我们可以在数据对象中携带自定义业务字段,比如高度:

SET shanghai pearlOfTheOrient FIELD height 468 POINT 121.506377 31.245105
复制代码

上面的语法解析下来就是设置shanghai[上海] pearlOfTheOrient[东方明珠]的经纬度,顺便把高度也放在这个点坐标里面

我们也可以使用多个FIELD字段,把需要的多个业务字段都放在里面。这个FIELD字段可以在将来作为查询条件找出符合业务要求的数据。

可选参数

  • EX表示这条数据多久过期,单位为秒。
  • NX表示只有数据库中没有这个id才会设置进去,否则不设置。这个就是创建的作用。
  • XXNX相反,只有数据库中有这个id才会设置进去,其实就是更新的作用。

数据类型

OBJECTPOINTBOUNDSHASHSTRING分别表示不同的数据类型:

  • OBJECT一般通过一组经纬度坐标来表示点、线、面
    点:
SET key id OBJECT {"type":"Point","coordinates":[-112.2693,33.5123]}
复制代码
  • 线:
SET key id OBJECT {"type":"LineString","coordinates":[[70.3125,56.9449741808516],[94.921875,60.58696734225869]]}
复制代码
  • 面:
SET key id OBJECT {"type":"Polygon","coordinates":[
          [
            [
              39.867514,
              116.577703
            ],
            [
              39.867757,
              116.582268
            ],
            [
              39.868634,
              116.578497
            ],
            [
              39.867514,
              116.577703
            ]
          ]
        ]}
复制代码
  • 需要注意的是,在OBJECT里面,坐标位置顺序是[纬度,经度];如果是画多边形,那么起始位置和结束位置一定是同一个位置。
  • POINT最简单,就提供一个经纬度坐标即可:
SET key id POINT -112.2693 33.5123
复制代码
  • 另外POINT还允许额外有一个z参数,我们可以使用海拔或者时间戳来填补这个参数:
SET key id POINT -112.2693 33.5123 40
复制代码
  • 这个z参数也可以作为查询条件。
  • BOUNDS就是设置一个矩形,一般创建一个矩形只需要两个点即可,一个点是左下角,一个点是右上角:
SET key id BOUNDS 30 -110 40 -100
复制代码
  • HASH是一种使用短字母数字字符串表示位置(世界任何地方)的便捷方式,使用较长的字符串可以获得更高的精度。可查看相关资料
SET props area1 HASH 9tbnwg
复制代码
  • 小伙伴可以通过这个网站转换geohash:csxgame.top/#/
  • STRING可以用来设置一些原始字符串,字符串类型的值可以是纯文本或一系列原始字节


相关文章
|
3月前
|
JSON Java 关系型数据库
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
在Java中,使用mybatis-plus更新实体类对象到mysql,其中一个字段对应数据库中json数据类型,更新时报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
400 4
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
|
6月前
|
存储 关系型数据库 MySQL
初步了解MySQL数据库的基本命令
初步了解MySQL数据库的基本命令
62 0
|
4月前
|
tengine 关系型数据库 MySQL
Tengine、Nginx安装MySQL数据库命令教程
本指南详细介绍了在Linux系统上安装与配置MySQL数据库的步骤。首先通过下载并安装MySQL社区版本,接着启动MySQL服务,使用`systemctl start mysqld.service`命令。若启动失败,可尝试使用`sudo /etc/init.d/mysqld start`。利用`systemctl status mysqld.service`检查MySQL的服务状态,确保其处于运行中。通过日志文件获取初始密码,使用该密码登录数据库,并按要求更改初始密码以增强安全性。随后创建一个名为`tengine`的数据库,最后验证数据库创建是否成功以及完成整个设置流程。
|
4月前
|
NoSQL MongoDB 数据库
MongoDB是一个NoSQL数据库,有着多种不同的命令和操作。以下是一些常见的MongoDB命令:
一些常用的MongoDB命令,如数据库和集合的管理、数据的插入、查询、更新、删除以及聚合操作等。
51 1
|
5月前
|
关系型数据库 MySQL 数据库
6-2|测试连接数据库的命令
6-2|测试连接数据库的命令
|
4月前
|
SQL Shell 数据库
在TDengine容器中创建初始化数据库的Shell命令实例
以上就是在Docker容器环境中部署并初始化TDengine数据库的全过程,希望对你有所帮助。
150 0
|
7月前
|
NoSQL MongoDB 数据库
Mongo 数据库备份和恢复命令
Mongo 数据库备份和恢复命令
314 4
|
7月前
|
NoSQL Redis
Redis set数据类型命令使用及应用场景使用总结
Redis set数据类型命令使用及应用场景使用总结
66 1
|
6月前
|
SQL 缓存 NoSQL
【Azure Redis 缓存】使用Azure Redis服务时候,如突然遇见异常,遇见命令Timeout performing SET xxxxxx等情况,如何第一时间查看是否有Failover存在呢?
【Azure Redis 缓存】使用Azure Redis服务时候,如突然遇见异常,遇见命令Timeout performing SET xxxxxx等情况,如何第一时间查看是否有Failover存在呢?

热门文章

最新文章