mongodb - 我们如何覆盖 mongoDB 中的默认索引限制?
问题描述
我有一个超过 125 个字符的 AWS Cognito JWT,我需要在 MongoDB 中创建索引。但问题是 MongoDB 索引接受最大限制的字符,125。我们如何设置最大限制或者有什么方法可以增加默认字符限制。
我尝试索引出现以下错误的 JWT(大约 150 个字符)。
MongoError: WiredTigerIndex::insert: key too large to index, failing 1025 { : "abc@xyz.com", "asdfghjkertyjk......"}
这就是我创建模式索引的方式。
schemaName.index({ email: 1, token: 1 });
解决方案
我会采用不同的方法,因为索引大文本/字符串字段并不总是最好的选择。
使用 SHA1 或 MD5 生成 JWT 字符串的唯一校验和(这将为您提供恒定的字符串长度)并保存该字段。按该字段索引和搜索
另一种选择是将 JWT 令牌解码为 JSON 并将其存储为嵌入式文档 - 然后您可以索引文档(但恕我直言,这是一个有风险的选择)
推荐阅读
- keil - STM32F407Vg SystemInit() <--灰色线下划线,复位处理错误
- google-apps-script - 从谷歌应用脚本创建正确编码/解码的 pdf 文件
- c - 修补 DWM 时遇到错误,此处不允许有关函数定义的内容
- angular - 如何检测许多 DOM 元素的变化
- python - 使用 MicroPython 获取 IP 地址
- javascript - 离子服务外部消失
- powershell - 如何将带有标头授权和表单的 curl POST 转换为 PowerShell v3.0
- rx-swift - Observable.CombineLatest 绑定和订阅 RxSwift
- c++ - 重复调用 PyRun_SimpleFile 时出现分段错误
- google-apps-script - 在 Google 表格中,如何锁定或阻止排序