Tile38空间数据库操作命令之FSET、JSET

简介: Tile38空间数据库操作命令之FSET、JSET

FSET语法

FSET key id [XX] field value [field value ...]
复制代码

设置id的一个或多个字段的值。值的类型是双精度浮点型。

示例

FSET fleet truck1 speed 16 wheels 8
复制代码

我们对fleet下面的truck1设置了两个字段值;一个是speed为16,一个是wheels为8。

如果对一个不存在的id进行设置,那么会抛出错误。我们可以使用参数XX来避免程序抛出错误。

FSET fleet trunk100 speed 90
复制代码

如果trunk100不存在,那么上面的命令就会发生错误,为了避免这个错误,我们可以用下面这个命令:

FSET fleet trunk100 XX speed 90
复制代码

这样的话,即使trunk100这个id不存在,执行这个命令也不会报错,当然也不会成功,相当于啥也没做。

JSET语法

JSET key id path value [RAW|STR]
复制代码

JSET的作用就是在一个JSON文档中设置一个值。

示例

通过JSET命令,我们可以构建一个JSON文档

127.0.0.1:9851> JSET user 901 name Tom
{"ok":true,"elapsed":"64.751µs"}
127.0.0.1:9851> JGET user 901
{"ok":true,"value":"{"name":"Tom"}","elapsed":"17.864µs"}
复制代码

除了上面这样针对一个简单字段创建JSON文档,我们还可以针对更深层次的path进行设置:

127.0.0.1:9851> JSET user 901 name.first Tom
{"ok":true,"elapsed":"70.712µs"}
127.0.0.1:9851> JGET user 901
{"ok":true,"value":"{"name":{"first":"Tom"}}","elapsed":"21.651µs"}
127.0.0.1:9851> JSET user 901 name.last Anderson
{"ok":true,"elapsed":"53.741µs"}
127.0.0.1:9851> JGET user 901
{"ok":true,"value":"{"name":{"first":"Tom","last":"Anderson"}}","elapsed":"17.704µs"}
复制代码

上面的示例就是通过name.firstname.last的方式来实现深层次的JSON文档。

  • RAW
SET linestrings 1 OBJECT {"type": "LineString", "coordinates": [[0, 0], [1, 1]]}
JSET linestrings 1 coordinates.-1 [2,2] RAW
JGET linestrings 1
> {"type":"LineString","coordinates":[[0,0],[1,1],[2,2]]}
复制代码
  • RAW允许将值解释为序列化的JSON对象。上面的JSET命令作用就是给coordinates数组的最后加上一个元素[2,2]
  • STR
JSET test 1 properties.bool true
JGET test 1 properties.bool
> {"value":true}
JSET test 1 properties.bool true STR
JGET test 1 properties.bool
> {"value":"true"}
复制代码
  • 如果没有在命令中加上STR,那么properties.bool的值就是true;加上STR就把properties.bool改变成了字符串的"true",而不是一个真正的布尔值。针对于整型数值,如果有需要的话,也可以通过添加STR的方式,将它们改变成字符串类型。

需要补充介绍的另外两个命令JGET、JDEL:

  • JGET语法:
JGET key id path [RAW]
复制代码
  • 从 JSON 文档中获取值。
JSET user 901 name Tom
JGET user 901
> {"name":"Tom"}
JSET user 901 name.first Tom
JSET user 901 name.last Anderson
JGET user 901 name.last
> {"ok":true,"value":"Anderson","elapsed":"12.724µs"}
复制代码
  • 我们既可以通过JGET key id获取整个JSON文档,也可以通过JGET key id path获取指定的JSON文档中的字段值。
  • JDEL语法:
JDEL key id path
复制代码
  • JDEL的作用就是从JSON文档中删除目标字段及相关值。
JSET user 901 name.first Tom
JSET user 901 name.last Anderson
JGET user 901
> {"name":{"first":"Tom","last":"Anderson"}}
JDEL user 901 name.last
JGET user 901
> {"name":{"first":"Tom"}}
复制代码
  • 在上面示例中,我们通过JSET产生了两个值,后续通过JDEL命令删掉了其中的name.last


相关文章
|
4月前
|
存储 Oracle 关系型数据库
oracle数据恢复—oracle数据库执行错误truncate命令的数据恢复案例
oracle数据库误执行truncate命令导致数据丢失是一种常见情况。通常情况下,oracle数据库误操作删除数据只需要通过备份恢复数据即可。也会碰到一些特殊情况,例如数据库备份无法使用或者还原报错等。下面和大家分享一例oracle数据库误执行truncate命令导致数据丢失的数据库数据恢复过程。
|
6月前
|
SQL 数据可视化 IDE
开发数据库不想写命令?YashanDB Developer Center 帮你轻松搞定
YashanDB Developer Center(YDC)是一款可视化的数据库开发工具,专为提升数据库开发效率而设计。它通过图形化对象管理让数据库对象清晰可见,提供智能SQL编辑器支持语法高亮与自动补全,实现PL调试的图形化操作,帮助快速定位问题。此外,操作记录可追溯,多端灵活部署,适配多种场景。无论是中大型企业研发团队,还是不熟悉命令行的业务开发者,YDC都能显著优化开发体验,堪称YashanDB的“可视化IDE”。
|
7月前
|
SQL 分布式计算 数据库
【YashanDB 知识库】Hive 命令工具 insert 崖山数据库报错
【YashanDB 知识库】Hive 命令工具 insert 崖山数据库报错
|
7月前
|
SQL 分布式计算 数据库
【YashanDB知识库】Hive 命令工具insert崖山数据库报错
【YashanDB知识库】Hive 命令工具insert崖山数据库报错
|
7月前
|
存储 NoSQL MongoDB
微服务——MongoDB常用命令1——数据库操作
本节介绍了 MongoDB 中数据库的选择、创建与删除操作。使用 `use 数据库名称` 可选择或创建数据库,若数据库不存在则自动创建。通过 `show dbs` 或 `show databases` 查看所有可访问的数据库,用 `db` 命令查看当前数据库。注意,集合仅在插入数据后才会真正创建。数据库命名需遵循 UTF-8 格式,避免特殊字符,长度不超过 64 字节,且部分名称如 `admin`、`local` 和 `config` 为系统保留。删除数据库可通过 `db.dropDatabase()` 实现,主要用于移除已持久化的数据库。
453 0
|
存储 关系型数据库 MySQL
初步了解MySQL数据库的基本命令
初步了解MySQL数据库的基本命令
119 0
|
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`的数据库,最后验证数据库创建是否成功以及完成整个设置流程。
|
NoSQL MongoDB 数据库
MongoDB是一个NoSQL数据库,有着多种不同的命令和操作。以下是一些常见的MongoDB命令:
一些常用的MongoDB命令,如数据库和集合的管理、数据的插入、查询、更新、删除以及聚合操作等。
139 1
|
关系型数据库 MySQL 数据库
6-2|测试连接数据库的命令
6-2|测试连接数据库的命令
|
SQL Shell 数据库
在TDengine容器中创建初始化数据库的Shell命令实例
以上就是在Docker容器环境中部署并初始化TDengine数据库的全过程,希望对你有所帮助。
378 0

热门文章

最新文章