我需要在 couchdb 和 pouchdb-find 中进行不区分大小写的搜索

2024-01-01

我的项目运行完美,我遇到的唯一问题是搜索区分大小写。它可以很好地搜索子字符串,但是如果我输入"Test",它忽略了"test"作为有效结果。

我在用pouchdb 查找 https://www.npmjs.com/package/pouchdb-find使搜索更容易并且与 cloudant 搜索更相关限制/跳过分页参数。

我正在使用离子搜索栏 https://ionicframework.com/docs/api/components/searchbar/Searchbar/供用户输入查询的字符串。

这是我的控制器代码摘录:

@Component({
    selector: 'page-notas',
    templateUrl: 'notas.html'
})
export class NotasPage {
    notas: Array<Object> = [];
    zone: any = new NgZone({ enableLongStackTrace: false });
    db: any = new PouchDB('banco_de_dados.bd');
    db_limit = 10;

    pouch_query: object = {
        selector: { data_emissao: { $gt: null } },
        sort: [ {'data_emissao' : 'desc'} ],
        limit: 10,
        skip: 0,
    };

    constructor(
        private scanner: BarcodeScanner,
        private toastCtrl: ToastController,
        private googleAnalytics: GoogleAnalytics,
        public navCtrl: NavController,
        public alertCtrl: AlertController,
        public modalCtrl: ModalController
    ) {
        this.notas = [];
    }
    //...
    // unrelated code in here
    //...
    onInput($event:any) {
        this.googleAnalytics.trackEvent('SearchBar', 'onInput', 'Event: ' + $event);
        //Here is the query options, it's working, the only problem is that it's case sensitive
        this.pouch_query = {
            selector: { 
            data_emissao: { $gt: null },
            descricao: { $regex: this.search_query }
            },
            sort: [ {'data_emissao' : 'desc'} ],
            limit: 10,
            skip: 0
        };
        // this function is a little bigger
        // butit just makes the search and list it in a ion-list
        this.refresh();
    }
}

这是组件代码摘录。

<!-- MORE UNRELATED CODE -->
<ion-searchbar
    [(ngModel)]="search_query"
    [showCancelButton]="shoulShowCancelButton" 
    (ionInput)="onInput($event)"
    (ionCancel)="onCancel($event)">
</ion-searchbar>
<!-- MORE UNRELATED CODE -->

Javascript 内置了一个正则表达式函数,因此您只需将 incensitive 选项添加到正则表达式中即可,如下所示

RegExp(<string>, "i")

您可以在中找到正则表达式选项列表w3学校 https://www.w3schools.com/jsref/jsref_obj_regexp.asp。这是完整的代码:

this.pouch_query = {
  selector: { 
    data_emissao: { $gt: null },
    descricao: { $regex: RegExp(this.search_query, "i") }
  },
  sort: [ {'data_emissao' : 'desc'} ],
  limit: 10,
  skip: 0
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我需要在 couchdb 和 pouchdb-find 中进行不区分大小写的搜索 的相关文章

随机推荐

  • 如何在 Spring 中缩小动态 HTML 响应?

    遵循 Google 的 pagespeed 建议 我希望缩小 Spring 应用程序的 HTML 响应 我指的不是 GZip 而是在发送 HTML 之前从 HTML 中删除注释和空格 我想动态地执行此操作 而不是在我的模板中执行此操作 我的
  • cookiejar 对象可以被 pickle 吗?

    我尝试像这样腌制 CookieJar 对象 import cookielib import pickle dumpFile open cookie dump w cj cookielib CookieJar pickle dump cj d
  • 迭代 Linq 结果时出现奇怪的缓慢现象

    在探索最近的林克问题 https stackoverflow com questions 1582054 handling temporary calculation in linq我注意到该算法似乎相当慢 深入挖掘后 我注意到这不是 li
  • 确定文本字符串中的行数?

    作为打印类的一部分 我希望能够在多个页面上打印长字符串 但我不知道如何计算整个字符串的高度 我将通过首先计算字符串中的行数来确定 我知道我可以计算换行符的数量 但我也使用自动换行 因此每当一行超过页面宽度时就会添加换行符 所以我想我可以计算
  • 防止自定义断言显示在 python unittest 的回溯中

    我想向测试用例添加一些自定义断言方法 作为一个简单的例子 我只是将一个放在下面的测试类中 它按预期工作 但是当生成输出时 回溯在输出中包含自定义断言 要使其表现得像assertEqual 所需的步骤是什么 assertEqual 的代码位于
  • Eclipse 计算代码行数[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我已经尝试过指标插件 http metrics sourceforge net虽然这很好 但这并不是我
  • PHP oAuth POST 请求

    让我的 oAuth POST 请求返回可行的响应时遇到一些问题 任何想法将不胜感激 request provider gt getAuthenticatedRequest POST https graph microsoft com v1
  • 使用 RabbitMQ 发送图像

    我想使用 RabbitMQ 将图像从客户端传输到服务器 然而 从我读到的内容来看 我了解到 RabbitMQ 只能传输文本流 那么如何传输图像呢 amqp主体是一个缓冲区 你可以发送你想要的内容 一般来说 如果你想发送一个文件 你必须读取它
  • 更改列表框中包含绘制项目上特定字符串的特定项目的颜色

    我想更改包含特定字符串的项目的颜色 Private Sub ListBox2 DrawItem ByVal sender As Object ByVal e As System Windows Forms DrawItemEventArgs
  • 带有包含动态导航图的 Resources$NotFoundException

    我有一个动态功能模块 它有自己的嵌套导航图 我还有一个动态功能模块 它只是一个片段 如果您有一个带有自己的导航图的动态功能模块 我知道您需要使用包含动态标签 当我构建应用程序并将应用程序部署到 Play 商店进行内部测试时 动态模块可以正确
  • 如何在不调用成员函数的情况下修改对象?

    在 3 10 10 中 该标准表示 为了修改对象 对象的左值是必需的 但在某些情况下 类类型的右值也可用于修改其所指对象 示例 为对象调用的成员函数 9 3 可以修改该对象 因此 除非在某些情况下 右值是不可修改的 我们被告知调用成员函数是
  • 为什么 iOS 在通过 UIManagedDocument 保存核心数据时会延迟?

    我正在使用 Core Data 将一些信息保存在 SQLite 数据库中 我正在使用模拟器进行测试 并使用sqlite3查询数据库并验证我是否存储了我期望的内容 我看到的是 数据在保存 15 20 秒后才出现在 SQLite 数据库中 这是
  • 行结束问题 DOS > Linux > Java

    我在使用 160 000 行文件时遇到了一些麻烦 该文件是通过从 xlsx 文件导出生成的 它具有 txt 扩展名 但我担心它已导出为类似 DOS 的文件 位于每行的末尾都有 DOS 换行符 我正在使用用java编写的解析器 在Ubuntu
  • 从 Android 的列表视图中删除项目

    我想从列表视图中删除该项目 我的代码用于列表视图 this lv1 setAdapter new ArrayAdapter
  • 为什么 Root Widget 需要构建两次?

    我有这个非常基本的测试应用程序 import package flutter material dart void main gt runApp MyApp class MyApp extends StatelessWidget overr
  • 如何自定义UIAlertView?苹果会批准吗?

    我正在使用自定义UIAlertView with UITextField从用户那里获取密码 我被告知这个自定义视图可能会导致我的应用程序被 Apple 拒绝 那是对的吗 如果是这样 我的自定义控件的合适替代品是什么 您可以将文本字段添加到
  • ES6 是否存在用于将对象属性的子集复制到新对象的简写? [复制]

    这个问题在这里已经有答案了 考虑以下对象 const obj a 1 b 2 c 3 d 4 e 5 是否有一个简单的语法来创建包含以下内容的新对象 const obj2 a b d 我知道下划线和 lodash 有 pick 但我希望存在
  • 使用aspectj来分析选定的方法

    我想使用方面j 来分析库 我的计划是用注释来标记需要分析的方法 Profiled logicalUnitOfWork 然后有一个方面会在使用方法之前和之后触发logicalUnitOfWork以突出显示概要内容 所以 我的切入点开始看起来像
  • 比较数组php中的字符串

    In php a jeans nishalli baseses hude htad dfsdf dfee ddddd ddfsa fsadfa dsfdasf dfasdf dsfdasf dfdasf 我想搜索关键字 碱基 我如何获得单词
  • 我需要在 couchdb 和 pouchdb-find 中进行不区分大小写的搜索

    我的项目运行完美 我遇到的唯一问题是搜索区分大小写 它可以很好地搜索子字符串 但是如果我输入 Test 它忽略了 test 作为有效结果 我在用pouchdb 查找 https www npmjs com package pouchdb f