Dexie.js RxStorage: 使用选择器的 find() 和 findOne() 总是返回空或为空
QQ 设置
我的应用程序正在使用 Dexie.js 存储适配器使用 RxDB 存储数据. (减少)设置如下:
从 “rxdb/plugins/ storage-dexie” 导入{ getRxStorageDexie} ; 从“ rxdb/plugins/ core” 导入{ 添加RxPlugin} ; 从 “ rxdb/ plugins/ dev- mode” 导入 { RxDBDevModePlugin } ; 从“ rxdb/plugins/ validate- jav” 导入 { 包裹Validate AjvStorage } ; 从 “rxdb/plugins/core” 导入 {创建RxDatabase} ; 从 “rxdb/plugins/ cleanup” 导入 { RxDBCleanupPlugin } ; 从“ rxdb/ plugins/ 领导选择” 导入 { RxDBLeaderElectionPlugin }
允许存储 = 包裹 ValidateAjvStorage({存储: getRxStorageDexie ()}); 添加RxPlugin(RxDBDev ModePlugin) ; 添加RxPlugin(RxDBDev ModePlugin) ; 添加RxPlugin(RxDBDev ModePlugin) ; 添加RxPlugin(RxDBDev ModePlugin) 。 添加RxPlugin(RxDBCleanupPlugin) ; 添加 RxPlugin(RxDBCleanupPlugin) ; 添加 RxPlugin(RxDBCleanupPlugin) ; 添加 RxPlugin(RxDBCleanupPlugin) 。 添加RxPlugin(RxDBLeaderElectionPlugin) ; 添加RxPlugin(RxDBLeaderElectionPlugin) ; 添加RxPlugin(RxDBLeaderElectionPlugin) ; 添加RxPlugin(RxDBLeaderElectionPlugin) ;
Const db = 等待创建RxDatabase({ 名称:"资产追踪器", 存储:存储
- ;
等待 db.add 组合({ 收藏名称 // 资产:{ 本地文档: 真实, /我们使用 JSON-schema 标准 计划 : { 版本 : 0, 主键:"id", 类型 : “ 对象” , 属性 :{ 编号:{ 类型 : 字符串, 最大Length: 100 / / <- 主键必须具有最大Length {\fn华文楷体\fs16\1cHE0E0E0} 数值:{ 类型 : 字符串, {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? {\fn华文楷体\fs16\1cHE0E0E0} 需要: ['id','value'] {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
- ;
一切都很好,我插入了一些数据 如下,我可以看到它们 在浏览器devtools
cont 资产 Mod = 导入.meta.glob < ImageMetadata> ("/src/assets/**/*.webp",{进口:"默认"})
用于(让资产在资产Mod){
等待 db.assets. 插入({id: listPth, 值:(await list Mod[assetPth ()))
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?呼叫 “ db.assets. find (. exec () ” 找到全部成功 。
问题
然而,当我想用db.assets.findOne(iid).exec()'过滤它们时,如果iid'是一个存在的ID,它就会返回null'。 调用 “ db. assets. find( iid). exec( ) ” 也未能返回任何结果, 导致空数组( []' )
调用下面的“ nill”
- `db.assets.find One({选择者:{id: iid}}}).exec ()'
- `db.assets.findOne({选取者:{id:{$eq: iid}}}>).exec ()'
以及上述“查找”版本,返回空阵列。
调查
我修补了窃听器 发现了一个发现 我试图查询一个不存在的字段`it',它返回了原始查询如下:
查询:{
"选取者":{
"其":{
"$eq":"101.webp" (中文(简体) ).
{\fn华文楷体\fs16\1cHE0E0E0}
"删除":{
"$eq":虚假
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
{\fn华文楷体\fs16\1cHE0E0E0}
"限制": 1,
" skip":0, (英语).
"类":[
{
""去":"从".
{\fn华文楷体\fs16\1cHE0E0E0}
{
"id":"Asc" (英语).
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
[ . ]
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?如查询所述,find()'和findOne()'试图找到未被删除的数据,如果`删除=虚假'。 然而,在 db 中, 去除为"0"的字符串值.
<img宽="237"高="160" alt="Image" src="https://GitHub.com/user-attachments/assets/6efc977c-f338-4842-bb29-c11266220ab5"/"
内容来源: pubkey/rxdb