Как жестко закодировать / предварительно заполнить базу данных LokiJS - PullRequest
0 голосов
/ 24 апреля 2018

Я только начинаю с LokiJS, и у меня есть один фундаментальный вопрос, который я не могу обернуть вокруг:

Есть ли способ жестко закодировать базу данных LokiJS? Или я должен добавить все данные через Javascript?

Мне кажется необходимым иметь что-то вроде PHPMyAdmin для проверки / добавления / удаления фактических данных в базе данных, но я пока ничего не нашел, чтобы сделать это с базой данных LokiJS. Разве это не большая потеря в удобстве использования?

1 Ответ

0 голосов
/ 25 апреля 2018

Lokijs.org

Быстрое, ориентированное на память хранилище документов для документов для node.js, браузера и кордовы.

Примеры использования:

  • Для реализации функции, подобной базе данных, на устройстве с ограниченными ресурсами (например, 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.
  • Создать базу данных.
  • Создайте коллекцию.
  • Вставьте свои данные.
  • Сохраните их (вручную / авто)

Надеюсь, это поможет.

...