0

我刚开始使用 LokiJS,我有一个基本的问题我无法解决:

有没有办法对 LokiJS 数据库进行硬编码?还是我必须通过 Javascript 添加所有数据?

对我来说似乎有必要使用 PHPMyAdmin 之类的东西来检查/添加/删除数据库中的实际数据,但到目前为止我还没有发现任何东西可以使用 LokiJS 数据库来执行此操作。这不是可用性的重大损失吗?

4

1 回答 1

0

Lokijs.org

用于 node.js、浏览器和 cordova 的快速、内存中的面向文档的数据存储。

用例:

  • 在有限资源(类似Raspberry Pi)的设备上实现类似数据库的功能。
  • 在不运行服务器的情况下创建安全的应用程序。
  • 持久化数据并重用它,用于客户端的丰富功能应用程序。
  • ..

该列表可以增加 100 分。

可用性损失大?

不。

因为它实现了引入它的目的。(在内存数据存储中)

有没有办法对 LokiJS 数据库进行硬编码?

是的。

创建 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 db 的有效示例副本。

像 PHPMyAdmin 这样的检查/添加/删除?

不。

还是我必须通过 JavaScript 添加所有数据?

是的

要遵循的步骤

  • 需要 lokijs 模块。
  • 创建一个数据库。
  • 创建一个集合。
  • 插入您的数据。
  • 坚持下去(手动/自动)

希望能帮助到你。

于 2018-04-25T11:13:52.843 回答