LinvoDB —— 用于 Node 的嵌入式文档数据库

    xiaoxiao2023-08-16  165

    LinvoDB 是一个 Node.js/NW.js 的嵌入式数据库引擎,类似 MongoDB 和类 Mongoose 数据库,提供类似的接口,基于 NeDB 开发。

    特性:

    类 MongoDB 的查询引擎

    基于 LevelUP 的持久化,可选择不同后端

    NW.js 友好 - JS-only backend is Medea

    高性能 - steady performance unaffected by DB size - queries are always indexed

    自动索引

    Live queries - make the query, get constantly up-to-date results

    Schemas - built-in schema support

    Efficient Map / Reduce / Limit

    示例代码:

    var LinvoDB = require("linvodb3"); var modelName = "doc"; var schema = { }; // Non-strict always, can be left empty var options = { }; // options.filename = "./test.db"; // Path to database - not necessary // options.store = { db: require("medeadown") }; // Options passed to LevelUP constructor var Doc = new LinvoDB(modelName, schema, options); // New model; Doc is the constructor LinvoDB.dbPath // default path where data files are stored for each model LinvoDB.defaults // default options for every model

    插入数据:

    // Construct a single document and then save it var doc = new Doc({ a: 5, now: new Date(), test: "this is a string" }); doc.b = 13; // you can modify the doc doc.save(function(err) { // Document is saved console.log(doc._id); }); // Insert document(s) // you can use the .insert method to insert one or more documents Doc.insert({ a: 3 }, function (err, newDoc) { console.log(newDoc._id); }); Doc.insert([{ a: 3 }, { a: 42 }], function (err, newDocs) { // Two documents were inserted in the database // newDocs is an array with these documents, augmented with their _id // If there's an unique constraint on 'a', this will fail, and no changes will be made to the DB // err is a 'uniqueViolated' error }); // Save document(s) // save is like an insert, except it allows saving existing document too Doc.save([ doc, { a: 55, test: ".save is handy" } ], function(err, docs) { // docs[0] is doc // docs[1] is newly-inserted document with a=55 and has an assigned _id // Doing that with .insert would throw an uniqueViolated error for _id on doc, because it assumes all documents are new });

    文章转载自 开源中国社区 [http://www.oschina.net]

    相关资源:nosql, 面向小型 node.js 项目的NoSQL 嵌入式数据库.zip
    最新回复(0)