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


相关文章
|
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月前
|
SQL 存储 数据挖掘
深入了解SQLite3命令:小巧强大的数据库工具
SQLite3是轻量级数据库工具,适用于嵌入式设备和数据分析。它提供交互式shell,无需服务器,易于部署。常用命令如`.schema`显示表结构,`.mode`设置输出格式。示例包括创建数据库`mydatabase.db`,创建表`users`,插入数据并查询。注意动态类型系统、性能限制及SQL注入安全。适合轻量级数据存储和管理。
|
8月前
|
关系型数据库 MySQL 分布式数据库
PolarDB产品使用问题之 MySQL数据库中,执行delete命令删除数据后,存储空间通常不会立即释放,该如何优化
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
184 2
|
7月前
|
Web App开发 缓存 数据管理
数据管理DMS使用问题之执行SHOW CREATE TABLE命令查看表结构时,数据库管理员和普通授权账号看到的为什么不一样
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
|
7月前
|
NoSQL Java 数据库
数据库问题之使用jmap命令获取Java堆信息如何解决
数据库问题之使用jmap命令获取Java堆信息如何解决
45 0

热门文章

最新文章