LinvoDB

嵌入式文档数据库
授权协议 MIT
开发语言 JavaScript
所属分类 数据库相关、 NoSQL数据库
软件类型 开源软件
地区 不详
投 递 者 长孙鸿
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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
});
  • LinvoDB 是一个 Node.js/NW.js 的嵌入式数据库引擎,类似 MongoDB 和类 Mongoose 数据库,提供类似的接口,基于 NeDB 开发。 特性: 类 MongoDB 的查询引擎 基于 LevelUP 的持久化,可选择不同后端 NW.js 友好 - JS-only backend is Medea 高性能 - steady performance unaffected b

 相关资料
  • 您可以在Perl模块和脚本中嵌入Pod(Plain Old Text)文档。 以下是在Perl代码中使用嵌入式文档的规则 - 使用空行开始您的文档,在开头使用a = head1命令,然后使用= cut结束它 Perl将忽略您在代码中输入的Pod文本。 以下是在Perl代码中使用嵌入式文档的简单示例 - #!/usr/bin/perl print "Hello, World\n"; =head1 H

  • 我有一个由“记事本”组成的meteor应用程序,每个记事本都包含一组“笔记”,可以在任何位置插入、删除或编辑行。该数组包含在一个对象中,该对象包含各种其他信息(例如名称、用户等)。主文档中的每个对象都将包含其中一个数组。例如: 是否有任何方法可以将“注释”作为其自己的集合传递给我的客户,以便客户可以直接编辑它,就像它没有嵌入一样?如果每次我想更新时都需要将完整的notes数组传递给服务器,我担心性

  • 我用Mongoose定义了以下模式: 我尝试执行以下查询: 查询不响应,并且从不进入回调函数。这很奇怪,因为这种类型的查询(搜索两个字符串字段)适用于我定义的另一个模式,但不适用于这个模式。另一种模式更简单,不需要任何嵌入文档。 [更新] 我试过你的建议,但不行。我认为只有两个选择: 1.我发布的模式有问题。 多谢!

  • 我正在构建一个将使用neo4j的web应用程序。我将在Java构建一个REST API,它将使用Neo4j嵌入式版本。这个架构有什么问题吗? 用别的方法好吗?Neo4j服务器? 谢谢!

  • 嵌入式文档中数组聚合的切片方法不适合我使用Spring mongo模板。 示例: 发票收款: 使用mongoTemplate,我希望只获取切片中的历史数据。 对于需要切片直接出现在根下面的数组,我找到了使用聚合的解决方案。参考:Spring mongo仓库切片 对嵌入文档中的数组应用类似的查询,即使有数据,也会返回空列表。 我尝试的查询是: 但这将返回一个空的数据列表。 我nvoice.java

  • 我有一个Spring Boot和嵌入式Mongo DB的项目,我也想查找存储在那里的数据。我学习了本教程https://springframework.guru/spring-boot-with-embedd-mongoDB/