问题标签 [rxdb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
919 浏览

rxdb - 如何列出 RxDB 集合中的所有文档?

在 RxDB 中,要列出包含文档的远程数据库上的集合中的所有文档,我尝试过:

来自文档:https ://rxdb.info/rx-collection.html#dump https://rxdb.info/rx-document.html#find

但两者都_find用身体发帖:

返回一个空的 docs [] 数组。_find在 RxDB 之外执行的相同选择器也返回一个空的 docs 数组。

如果我使用 将文档添加到集合中myCollection.upsert(),则文档将添加到远程服务器,然后在上述两个调用中显示为响应。但可能仅来自存储在内存中的内容,因为仍然有这个远程POST响应_find为空。docs: []因此,在页面刷新时,这些列表调用再次为空。

我正在使用:

0 投票
1 回答
342 浏览

mongodb-query - rxDB 查询数组元素是否存在问题?

我正在尝试获取那些具有“someArray”的对象 - 数组和 someArray 对象之一“val”> 0 和“someKey”=== 415

如 rxdb 文档中所述,我在 rxDB 中使用 mongoDBs 的链式方法,但是查询数组元素总是返回空数组,它不会给我任何错误。我正在使用 rxdb 版本 8.0.4。

预期的结果总是空数组,但在我的 localDB 中存在这些数据,100% 肯定。

0 投票
0 回答
531 浏览

reactjs - 无法运行 RxDb MigrationStrategies

我正在尝试实现一个简单的迁移策略,如此处文档中所述:https ://rxdb.info/data-migration.html

我想知道是否有人成功实施了migrationStrategies,因为我在网上找不到任何示例,或者我只是在浪费时间。

当我尝试传入一个对象(如文档规定)时,我收到以下错误:

RxError: RxError: migrationStrategies must be a function Uncaught (in promise) >RxError: RxError: migrationStrategy must be a function

当我尝试将策略作为函数传递时,出现以下错误:

RxError:RxError:migrationStrategies 必须是一个对象construct.js:30 未捕获(承诺)RxError:RxError:migrationStrategies 必须是一个对象

预期输出:

运行迁移并设置新属性(flavour & someNewProperty)

将 migrationStrategies 作为对象传入时的实际结果:

实际结果:当将迁移策略作为上述函数传递时,我收到以下错误消息:

0 投票
1 回答
1561 浏览

javascript - RxDB - Document update conflict (error 409)

I use RxDB and want to update the document in it. This is how the db is created:

This is the method to get the db:

And this is the generator function to save data to DB:

The issue is: usually saveDataToDb function works pretty good, but after calling it several times, it goes to catch with this error:

It happens when I'm trying to yield userDoc.update. I know that this issue could happen because of different _rev properties in original and updated documents after update.then(), but redefining the value of _rev in updated document does not help! I also have found this solution for PouchDB: https://github.com/pouchdb/pouchdb/issues/1691#issuecomment-38112213 Since I'm new in RxDB, please pinpoint what should I do regarding to RxDB document.update! Thanks in advance.

UPD: I tried to use atomicUpdate this way:

But data is not updated in the database. Perhaps, I'm doing it in the wrong way? How should I use atomicUpdate regarding to update method in the code above?

0 投票
1 回答
202 浏览

typescript - RxDB - 重新加载后找不到集合

尝试在我的 Angular 应用程序中从 RxDB 开始。想要一些简单的工作:

我的问题是,在应用程序重新加载时找不到创建的集合“语言”。代码总是执行 if 路径而不是我期望的 else 路径。

我在这里做错了什么?谢谢帮助!

0 投票
1 回答
54 浏览

rxdb - Rxdb 插件:在插件中使用 RxCollectionBase#insert 方法

我正在尝试为 rxdb 创建一个插件。我想捕获由引发的异常insert并返回一个哈希 {[fieldName: string] => [error:string]}

但是,当使用我的新方法时,我遇到了一个异常,似乎该方法是直接在原型上而不是在每个RxColletion<T, T2, T3>实例上调用的。

我得到的错误是:

这发生在这里:https ://github.com/pubkey/rxdb/blob/ac9fc95b0eda276110f371afca985f949275c3f1/src/rx-collection.ts#L443

因为this.schema未定义..我在其上运行此方法的集合确实有一个模式..

这是我的插件代码:

0 投票
1 回答
184 浏览

gis - 如何在浏览器中索引geojson数据以存储在indexDB中(使用geojson-vt)

概述

我有一个相当有趣的需求,我需要从服务(不是矢量切片服务)加载 geojson 数据,然后缓存该数据以供离线使用(使用 indexDB)。因此,当离线运行应用程序时,我需要将 indexDB 中的数据加载到地图中(使用 mapbox-gl)。可以离线缓存的数据量(在 indexDB 中)可能非常大,因此我不能只将所有数据放入内存并将其添加到地图中(在这种情况下,mapbox 将使用 geojson-vt 在内部为我们处理一切)。

我意识到,如果源是一个矢量切片服务,这会使事情变得更容易,但不幸的是,目前这不是一个选择。

尝试的解决方案

我相信解决这个问题的方法是在我将数据存储在 indexDB 中时对其进行索引。我的想法是,我会计算出每个“特征”的每个 UTM 网格值,这样当地图移动时,我可以简单地查询相应网格中的特征并将它们加载到 mapbox 中。

示例索引数据库“表”:

有了上面的信息,我就可以查询 select * from index_db_features where utm_tiles in ('14_0_0', '14_0_1')

虽然这在理论上似乎可行,但我遇到的问题是找出给定功能涉及的所有图块。geojson -vt库似乎可以满足我的要求,只是它没有为您提供在其中找到功能的所有图块的实际列表 - 它执行相反的操作,您需要根据给定瓷砖。

有没有人有任何建议来找出给定功能所涉及的所有图块?或者对在 indexDB 中使用的 geojson 数据进行空间索引的更好建议?

0 投票
3 回答
295 浏览

node.js - 如何让这个全局变量在调用之间保持它的值?

我正在尝试减少在我的数据访问文件(文件database内的变量tree-rxdb.mjs)中初始化数据库对象的次数。我创建了一个全局变量来保存对数据库对象的引用,并检查它之前是否已初始化,如果已经初始化,我只是将变量返回给调用者而不再次初始化它。出于某种原因,database每次调用此函数时它总是未定义,即使在我使用相同的代码成功写入数据库之后也是如此。奇怪的是,即使我相信我给予它相同的处理但显然得到不同的结果,dao内部变量也不会发生同样的情况。tree.mjs我只是在模拟这段代码,但由于某种原因,它不适用于database里面的变量tree-rxdb.mjs,我没看到什么?

树-rxdb.mjs

树.mjs

应用程序.mjs

0 投票
1 回答
482 浏览

node.js - RxDB/Electron 在 sqlite 中存储数据

我想使用 Ionic/Electron 构建一个混合体以在桌面、浏览器和 Android 上运行它,在做了一些研究后我发现 RxDB 的定义似乎适合这种 DB 用法(https://rxdb.info/
我希望能够以类似 SQLite 的存储容量在本地存储数据,而不受 Web 浏览器存储容量的限制,并使用相同的 api (rxdb ?) 来操作桌面(电子)、移动设备和 Web 浏览器(离子)上的数据.
这可能使用 RxDB 吗?如果不是,我想知道是否有工具能够允许这样的功能?

0 投票
1 回答
51 浏览

javascript - RxDB 领导层阻止了 chrome 中的所有套接字

我使用waitForLeadership只让一个选项卡同步数据库。它看起来像它的作品。但是,如果我激活此功能并打开 3 个以上的选项卡,则不会加载下一个选项卡。铬总是说,waiting for available socket...

有没有人有/有同样的问题?

我做错了什么?我必须手动启动同步过程吗?如果我在一个实例中插入,无论是否为主,它都是正确可见的。但似乎,多个实例试图打开一个套接字/长轮询。