从基础库 2.3.2 开始(wx-server-sdk 从 0.0.23 开始),数据库支持正则表达式查询,开发者可以在查询语句中使用 JavaScript 原生正则对象或使用 db.RegExp 方法来构造正则对象然后进行字符串匹配。在查询条件中对一个字段进行正则匹配即要求该字段的值可以被给定的正则表达式匹配,注意正则表达式不可用于 db.command 内(如 db.command.in)。
使用正则表达式匹配可以满足字符串匹配需求,但不适用于长文本 / 大数据量的文本匹配 / 搜索,因为会有性能问题,对此类场景应使用文本搜索引擎如 ElasticSearch 等实现。
db.RegExp 定义如下:
function RegExp(initOptions: IInitOptions): DBRegExp
interface IInitOptions {
regexp: string // 正则表达式,字符串形式
options: string // flags,包括 i, m, s 但前端不做强限制
}
options 支持 i, m, s 这四个 flag,注意 JavaScript 原生正则对象构造时仅支持其中的 i, m 两个 flag,因此需要使用到 s 这个 flag 时必须使用 db.RegExp 构造器构造正则对象。flag 的含义见下表:
flag | 说明 |
---|---|
i | 大小写不敏感 |
m | 跨行匹配;让开始匹配符 ^ 或结束匹配符 $ 时除了匹配字符串的开头和结尾外,还匹配行的开头和结尾 |
s | 让 . 可以匹配包括换行符在内的所有字符 |
基础用法示例:
// 原生 JavaScript 对象
db.collection("todos").where({
description: /miniprogram/i
})
// 数据库正则对象
db.collection("todos").where({
description: db.RegExp({
regexp: "miniprogram",
options: "i",
})
})
// 用 new 构造也是可以的
db.collection("todos").where({
description: new db.RegExp({
regexp: "miniprogram",
options: "i",
})
})
downloadFile从云存储空间下载文件请求参数字段说明数据类型默认值必填fileID云文件 IDString-YPromise 返回参数字段说明数据类...
Document数据库记录引用方法:Document.get(): PromiseObject支持端:小程序,云函数,Web获取记录数据,或获取根据查询条件筛选后...
#计算属性模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。例如...
#官方 Router对于大多数单页面应用,都推荐使用官方支持的 vue-router 库。更多细节可以移步 vue-router 文档。#从零开始简单的...
作为一个前端,有一款好的开发利器是必不可少的,editplus、notepad++都是不错的工具,体积轻巧,启动迅速(dw太浮肿了)。几年...
VS Code上的C#支持并不是十分完整。为什么这么说呢?这个C#插件,并不是要完成 Visual Studio 的C#支持的所有功能,而只是立足于...
Shell循环循环是一个强大的编程工具,可以使您能够重复执行一系列命令。针对 Shell 程序员,有 4 种循环类型:while 循环for 循...