将本地存储重构为 PouchDB
Refactoring Local Storage to PouchDB
我构建了一个将记录保存在本地存储中的应用程序。
我最近才意识到,在设计上我通过阻止 DOM 来阻止 CPU,因为我正在使用 ng-repeat 从单个键读取大量记录。
我的想法是迁移到 PouchDB,但我想我缺少一些概念。
现在我的数据结构是这样的:
- 键(汽车)- 值(objectCar1 - objectCar2 - objectCar3 ...)
- 键(驱动程序)- 值(objectDriver1 - objectDriver2 - objectDriver3 ...)-
- Key(records) - Value(objectRecord1 - objectRecord2 - objectRecord3 ... 现在到 Record70,开始出现问题)
我一直在阅读 Pouch 和 CouchDB 文档,如果我要切换到 PouchDB,那么我只需要随意将对象扔到数据库中,然后遍历它以查找参数以进行过滤?
现在,NoSQL 数据库就像一个大袋子,用来存储没有太多顺序的数据。
还是我遗漏了什么?
你漏掉了几件事。
首先,pouchDB 的主要技巧是使用 couchDB 进行复制。如果你不使用它,你可能最好使用其他一些网络数据库包装器(例如 ydn)
就查询数据而言,您可以遍历整个数据库。但更有效和简单的方法是使用 views or the find plugin
如果您已经在使用 localstorage,您可以查看 https://github.com/mozilla/localForage
PouchDB 不是存储数据的大包,但你必须稍微改变一下思维方式才能有效地存储数据。
长话短说,您需要插入如下所示的文档:
{ _id: 'car_<id>', data: ...}
{ _id: 'driver_<id>', data: ...}
{ _id: 'record_<id>', data: ...}
请注意,每个文档的 _id
都以其类型为前缀。
然后高效查询数据,例如要查找所有汽车,您可以查询 db.allDocs({startkey: 'car_', endkey: 'car_\uffff', include_docs: true})
.
或者,如果您厌倦了手写这些类型的查询,那么 relational-pouch 会做完全相同的事情,但 API.
我构建了一个将记录保存在本地存储中的应用程序。
我最近才意识到,在设计上我通过阻止 DOM 来阻止 CPU,因为我正在使用 ng-repeat 从单个键读取大量记录。
我的想法是迁移到 PouchDB,但我想我缺少一些概念。
现在我的数据结构是这样的:
- 键(汽车)- 值(objectCar1 - objectCar2 - objectCar3 ...)
- 键(驱动程序)- 值(objectDriver1 - objectDriver2 - objectDriver3 ...)-
- Key(records) - Value(objectRecord1 - objectRecord2 - objectRecord3 ... 现在到 Record70,开始出现问题)
我一直在阅读 Pouch 和 CouchDB 文档,如果我要切换到 PouchDB,那么我只需要随意将对象扔到数据库中,然后遍历它以查找参数以进行过滤?
现在,NoSQL 数据库就像一个大袋子,用来存储没有太多顺序的数据。
还是我遗漏了什么?
你漏掉了几件事。
首先,pouchDB 的主要技巧是使用 couchDB 进行复制。如果你不使用它,你可能最好使用其他一些网络数据库包装器(例如 ydn)
就查询数据而言,您可以遍历整个数据库。但更有效和简单的方法是使用 views or the find plugin
如果您已经在使用 localstorage,您可以查看 https://github.com/mozilla/localForage
PouchDB 不是存储数据的大包,但你必须稍微改变一下思维方式才能有效地存储数据。
长话短说,您需要插入如下所示的文档:
{ _id: 'car_<id>', data: ...}
{ _id: 'driver_<id>', data: ...}
{ _id: 'record_<id>', data: ...}
请注意,每个文档的 _id
都以其类型为前缀。
然后高效查询数据,例如要查找所有汽车,您可以查询 db.allDocs({startkey: 'car_', endkey: 'car_\uffff', include_docs: true})
.
或者,如果您厌倦了手写这些类型的查询,那么 relational-pouch 会做完全相同的事情,但 API.