如何硬编码/预填充 LokiJS 数据库
How to hardcode / prepopulate LokiJS Database
我刚开始使用 LokiJS,但我有一个根本无法解决的基本问题:
有没有办法对 LokiJS 数据库进行硬编码?还是我必须通过 Javascript 添加所有数据?
对我来说,似乎有必要使用 PHPMyAdmin 之类的东西来 inspect/add/delete 数据库中的实际数据,但到目前为止我还没有发现任何东西,可以用 LokiJS 数据库来做到这一点。这不是可用性上的一大损失吗?
Lokijs.org
A fast, in-memory document-oriented datastore for node.js, browser and cordova.
用例:
- 在有限资源(Raspberry Pi 类似)设备上实现类似数据库的功能。
- 在没有 运行 服务器的情况下创建安全的应用程序。
- 为客户端丰富的功能应用程序保留数据并重用它。
- ..
该列表可以继续上升 100 点。
可用性大减?
No.
因为它达到了引入它的目的。 (在内存数据存储中)
有没有办法硬编码 LokiJS 数据库?
Yes.
创建一个yourExampleDB.json或yourExampleDB.db文件并按以下方式插入数据。
{
"filename": "yourExampleDB.db",
"collections": [{
"name": "entries",
"data": [{
"id": 17948697,
"properties": { ... },
"meta": {
"revision": 0,
"created": 1524651771378,
"version": 0
},
"$loki": 1
}, {
"id": 17948705,
"properties": { ... },
"meta": {
"revision": 0,
"created": 1524651771378,
"version": 0
},
"$loki": 2
},
...
...
...
{
"id": 11699810,
"properties": { ... },
"meta": {
"revision": 0,
"created": 1524651771402,
"version": 0
},
"$loki": 11299
}],
"idIndex": [1, 2, ... 11298, 11299],
"binaryIndices": {},
"constraints": null,
"uniqueNames": [],
"transforms": {},
"objType": "entries",
"dirty": false,
"cachedIndex": null,
"cachedBinaryIndex": null,
"cachedData": null,
"adaptiveBinaryIndices": true,
"transactional": false,
"cloneObjects": false,
"cloneMethod": "parse-stringify",
"asyncListeners": false,
"disableMeta": false,
"disableChangesApi": true,
"disableDeltaChangesApi": true,
"autoupdate": false,
"serializableIndices": true,
"ttl": null,
"maxId": 11299,
"DynamicViews": [],
"events": {
"insert": [null],
"update": [null],
"pre-insert": [],
"pre-update": [],
"close": [],
"flushbuffer": [],
"error": [],
"delete": [null],
"warning": [null]
},
"changes": []
}, {
"name": "messages",
"data": [{
"txt": "I will only insert into this collection during databaseInitialize.",
"meta": {
"revision": 0,
"created": 1524651771378,
"version": 0
},
"$loki": 1
}],
"idIndex": [1],
"binaryIndices": {},
"constraints": null,
"uniqueNames": [],
"transforms": {},
"objType": "messages",
"dirty": false,
"cachedIndex": null,
"cachedBinaryIndex": null,
"cachedData": null,
"adaptiveBinaryIndices": true,
"transactional": false,
"cloneObjects": false,
"cloneMethod": "parse-stringify",
"asyncListeners": false,
"disableMeta": false,
"disableChangesApi": true,
"disableDeltaChangesApi": true,
"autoupdate": false,
"serializableIndices": true,
"ttl": null,
"maxId": 1,
"DynamicViews": [],
"events": {
"insert": [null],
"update": [null],
"pre-insert": [],
"pre-update": [],
"close": [],
"flushbuffer": [],
"error": [],
"delete": [null],
"warning": [null]
},
"changes": []
}],
"databaseVersion": 1.5,
"engineVersion": 1.5,
"autosave": false,
"autosaveInterval": 5000,
"autosaveHandle": null,
"throttledSaves": true,
"options": {
"serializationMethod": "normal",
"destructureDelimiter": "$<\n"
},
"persistenceMethod": "fs",
"persistenceAdapter": null,
"verbose": false,
"events": {
"init": [null],
"loaded": [],
"flushChanges": [],
"close": [],
"changes": [],
"warning": []
},
"ENV": "NODEJS"
}
这是 lokijs 数据库的有效示例副本。
类似于 PHPMyAdmin 到 inspect/add/delete?
No.
或者我是否通过 JavaScript 添加了所有数据?
Yes
要遵循的步骤
- 需要 lokijs 模块。
- 创建数据库。
- 创建一个集合。
- 插入您的数据。
- 坚持下去(Manual/Auto)
希望对您有所帮助。
我刚开始使用 LokiJS,但我有一个根本无法解决的基本问题:
有没有办法对 LokiJS 数据库进行硬编码?还是我必须通过 Javascript 添加所有数据?
对我来说,似乎有必要使用 PHPMyAdmin 之类的东西来 inspect/add/delete 数据库中的实际数据,但到目前为止我还没有发现任何东西,可以用 LokiJS 数据库来做到这一点。这不是可用性上的一大损失吗?
Lokijs.org
A fast, in-memory document-oriented datastore for node.js, browser and cordova.
用例:
- 在有限资源(Raspberry Pi 类似)设备上实现类似数据库的功能。
- 在没有 运行 服务器的情况下创建安全的应用程序。
- 为客户端丰富的功能应用程序保留数据并重用它。
- ..
该列表可以继续上升 100 点。
可用性大减?
No.
因为它达到了引入它的目的。 (在内存数据存储中)
有没有办法硬编码 LokiJS 数据库?
Yes.
创建一个yourExampleDB.json或yourExampleDB.db文件并按以下方式插入数据。
{
"filename": "yourExampleDB.db",
"collections": [{
"name": "entries",
"data": [{
"id": 17948697,
"properties": { ... },
"meta": {
"revision": 0,
"created": 1524651771378,
"version": 0
},
"$loki": 1
}, {
"id": 17948705,
"properties": { ... },
"meta": {
"revision": 0,
"created": 1524651771378,
"version": 0
},
"$loki": 2
},
...
...
...
{
"id": 11699810,
"properties": { ... },
"meta": {
"revision": 0,
"created": 1524651771402,
"version": 0
},
"$loki": 11299
}],
"idIndex": [1, 2, ... 11298, 11299],
"binaryIndices": {},
"constraints": null,
"uniqueNames": [],
"transforms": {},
"objType": "entries",
"dirty": false,
"cachedIndex": null,
"cachedBinaryIndex": null,
"cachedData": null,
"adaptiveBinaryIndices": true,
"transactional": false,
"cloneObjects": false,
"cloneMethod": "parse-stringify",
"asyncListeners": false,
"disableMeta": false,
"disableChangesApi": true,
"disableDeltaChangesApi": true,
"autoupdate": false,
"serializableIndices": true,
"ttl": null,
"maxId": 11299,
"DynamicViews": [],
"events": {
"insert": [null],
"update": [null],
"pre-insert": [],
"pre-update": [],
"close": [],
"flushbuffer": [],
"error": [],
"delete": [null],
"warning": [null]
},
"changes": []
}, {
"name": "messages",
"data": [{
"txt": "I will only insert into this collection during databaseInitialize.",
"meta": {
"revision": 0,
"created": 1524651771378,
"version": 0
},
"$loki": 1
}],
"idIndex": [1],
"binaryIndices": {},
"constraints": null,
"uniqueNames": [],
"transforms": {},
"objType": "messages",
"dirty": false,
"cachedIndex": null,
"cachedBinaryIndex": null,
"cachedData": null,
"adaptiveBinaryIndices": true,
"transactional": false,
"cloneObjects": false,
"cloneMethod": "parse-stringify",
"asyncListeners": false,
"disableMeta": false,
"disableChangesApi": true,
"disableDeltaChangesApi": true,
"autoupdate": false,
"serializableIndices": true,
"ttl": null,
"maxId": 1,
"DynamicViews": [],
"events": {
"insert": [null],
"update": [null],
"pre-insert": [],
"pre-update": [],
"close": [],
"flushbuffer": [],
"error": [],
"delete": [null],
"warning": [null]
},
"changes": []
}],
"databaseVersion": 1.5,
"engineVersion": 1.5,
"autosave": false,
"autosaveInterval": 5000,
"autosaveHandle": null,
"throttledSaves": true,
"options": {
"serializationMethod": "normal",
"destructureDelimiter": "$<\n"
},
"persistenceMethod": "fs",
"persistenceAdapter": null,
"verbose": false,
"events": {
"init": [null],
"loaded": [],
"flushChanges": [],
"close": [],
"changes": [],
"warning": []
},
"ENV": "NODEJS"
}
这是 lokijs 数据库的有效示例副本。
类似于 PHPMyAdmin 到 inspect/add/delete?
No.
或者我是否通过 JavaScript 添加了所有数据?
Yes
要遵循的步骤
- 需要 lokijs 模块。
- 创建数据库。
- 创建一个集合。
- 插入您的数据。
- 坚持下去(Manual/Auto)
希望对您有所帮助。