# 数据库

数据库civetkern基于共享内存存储引擎lmdb开发,并使用PEGTL构建了查询引擎。

# 查询语法

类似于mongodb,实现了部分查询语法,同时针对应用本身,定义了几个关键字

# 查询概要信息

这里的概要信息是指,文件id、文件名、是否已分类/标签
检索所有文件的概要信息:{snap: '*'}
分页检索,例如查看第3页,每页100张图片:{snap: {limit: 100, offset: 100*2}}

# 查询某个文件详细信息

# 查询标签

  1. 查询标签的概要信息
  2. 查询单个文件的标签内容

# 查询分类

# 按条件查找相关的文件

  1. 按关键字搜索,示例如下:
    {keyword: '海洋'}
    也可以使用数组形式:{keyword: ['海洋']}
  2. 标签搜索
  3. 日期搜索
    大于某个时刻点:{datetime: {$gt: new Date('2020-09-20T00:00:00.000Z')}}
    如果要小于某个时刻点,需要将$gt修改未$lt
  4. 分类搜索
  5. 按元信息搜索
    按元信息进行搜索功能是针对扩展进行的搜索。例如按颜色搜索: {color: {$near: '#343e58'}}, 按类型检索: {type: ['jpg']}

# 添加/修改数据

# 结构