{"id":20052714,"url":"https://github.com/ryosukecla/miningo","last_synced_at":"2025-05-05T12:30:24.551Z","repository":{"id":57297965,"uuid":"156904810","full_name":"RyosukeCla/miningo","owner":"RyosukeCla","description":"tiny embedding document-oriented database written in typescript for nodejs and browser.","archived":false,"fork":false,"pushed_at":"2024-02-24T05:38:21.000Z","size":842,"stargazers_count":3,"open_issues_count":3,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-18T23:09:17.153Z","etag":null,"topics":["database","document-database","embedding","nodejs","nosql","typescript"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/miningo","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RyosukeCla.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-11-09T18:51:49.000Z","updated_at":"2023-10-08T11:32:33.000Z","dependencies_parsed_at":"2022-09-06T03:30:13.766Z","dependency_job_id":null,"html_url":"https://github.com/RyosukeCla/miningo","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyosukeCla%2Fminingo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyosukeCla%2Fminingo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyosukeCla%2Fminingo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyosukeCla%2Fminingo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RyosukeCla","download_url":"https://codeload.github.com/RyosukeCla/miningo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252497386,"owners_count":21757603,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","document-database","embedding","nodejs","nosql","typescript"],"created_at":"2024-11-13T12:18:57.744Z","updated_at":"2025-05-05T12:30:24.152Z","avatar_url":"https://github.com/RyosukeCla.png","language":"TypeScript","readme":"# Miningo [![Build Status](https://travis-ci.org/RyosukeCla/miningo.svg?branch=master)](https://travis-ci.org/RyosukeCla/miningo)\nTiny embedding document-oriented database written in typescript.\n\n- For playground / experimental / simple / application use.\n- For who not want to use mongodb / redis / postgress, but want to use database.\n\n## installation\n```\n$ npm i miningo\n```\n\n## API\n### import\n- esmodule / ts\n```js\nimport miningo from 'miningo'\n```\n\n- commonjs\n```js\nconst miningo = require('miningo').default\n```\n\n### create client\n```ts\nconst db = miningo()\n```\n\n### create client with adapter\n```ts\n// default\nimport InMemoryAdapter from 'miningo/adapters/InMemoryAdapter'\nconst db = miningo(new InMemoryAdapter())\n\n// persistent json storage. save json to dataDir. very low performance.\nimport JsonStorageAdapter from 'miningo/adapters/JsonStorageAdapter'\nconst db = miningo(new JsonStorageAdapter('./data'))\n\n// persistent storage faster than json storage.\nimport FastStorageAdapter from 'miningo/adapters/FastStorageAdapter'\nconst db = miningo(new FastStorageAdapter('./data'))\n\n// persistent local storage for browser.\nimport LocalStorageAdapter from 'miningo/adapters/LocalStorageAdapter'\nconst namespace = 'test'\nconst db = miningo(new LocalStorageAdapter(namespace))\n\n\n// commonjs\nconst JsonStorageAdapter = require('miningo/adapters/JsonStorageAdapter').default\n```\n\n### create or get collection\n```ts\ninterface Human {\n  name: string\n}\n\nconst Human = db.collection\u003cHuman\u003e('Human')\n// or you can use json schema\nconst Human = db.collection\u003cHuman\u003e('Human', {\n  name: { type: 'string' }\n})\n```\n\n### drop collection\n```ts\nawait Human.drop()\n```\n\n### insert document\n```ts\nconst you = await Human.insert({ name: 'you' })\n```\n\n### insert documents\n```ts\nconst [you, me] = await Human.insertMany([{ name: 'you' }, { name: 'me' }])\n```\n\n### find document\n```ts\nconst doc = await Human.find(you._id)\n```\n\n### find all documents\n```ts\nconst docs = await Human.findAll()\n```\n\n### find documents by ids\n```ts\nconst docs = await Human.findMany([you._id, me._id])\n```\n\n### find documents by very simple query (not support operators such as $or, $in ...)\n```ts\nconst [you] = await Human.findBy({ name: 'you' })\n```\n\n### update document\n```ts\nconst updated = await Human.update(you._id, { name: 'me' })\n```\n\n### remove document\n```ts\nconst removed = await Human.remove(you._id)\n```\n\n### remove documents\n```ts\nconst removed = await Human.removeMany([you._id, me._id])\n```\n\n### collection size\n```ts\nawait Human.size()\n```\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryosukecla%2Fminingo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryosukecla%2Fminingo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryosukecla%2Fminingo/lists"}