Node.js 与 M 集成:教程,第二部分

还没有读者喜欢这个。
MUMPS, M and R programming languages

Opensource.com

在本教程的第一部分中,我介绍了 M 数据库的层级数据结构与 Node.js 语言的层级结构的集成。

在第二部分中,我将重点介绍这种集成相当于使用类似于 JSON 结构的数据模型在 Node.js 语言中合并持久性存储。这是建立在经过验证的数据库之上,该数据库以其在高要求应用程序中的高性能而闻名。

换句话说,这种 M 数据库集成提供了一个

Node.js 的原生 JSON 数据库

当我们使用以下表达式时,将创建 M 数据库和 Node.js 数据结构之间的连接:

var planet = new ewd.GlobalNode('earth',[]);

我们在底层 M 数据库中创建一个条目,其中一个称为“earth”的“全局变量”。在 M 术语中,“全局变量”是驻留在数据库中的变量。此 M 数据库数据结构现在链接到我们在 Node.js 代码中定义的变量“planet”。

Planet 是一个对象,它包含指向数据库连接的指针,通过这些指针,我们可以直接与数据库通信。

例如,我们可以使用诸如以下的表达式开始向这个树状结构添加信息

planet.$('Africa')._value = "";
planet.$('Asia')._value = "";
planet.$('Australia')._value = "";
planet.$('North America')._value = "";
planet.$('Antartica')._value = "";
planet.$('Europe')._value = "";

然后我们可以使用以下表达式将条目插入到这个树的分支中

planet.$('Asia').$('Japan').$('Tokyo')._value = "";

我们可以使用以下表达式打印出目前为止这棵树的内容

var record = planet._getDocument();
console.log("planet info: " + JSON.stringify(record));

这将产生以下输出

planet info: {"Africa":"","Antartica":"","Asia":{"Japan":{"Tokyo":""}},"Australia":"","Europe":"","North America":""}

将其放置在 jsbeautifier 中后,结果是

planet info: {
    "Africa": "",
    "Antartica": "",
    "Asia": {
        "Japan": {
            "Tokyo": ""
        }
    },
    "Australia": "",
    "Europe": "",
    "North America": ""
}

请注意,M 和 Node.js 使我们能够在某些分支中进行详细条目,而无需我们在所有其他分支中执行相同的操作。 这类似于我们可以在 *文档数据库* 中执行的操作,例如 MongoDB 和 CouchDB,但 M 层级数据库的不同之处在于,数据结构的所有子分支都可用于直接交互。

在这种情况下,每个子树的行为都像一棵树。查询也以非常自然的方式发生,通过从可能存在的分支进行赋值。

例如,我们可以尝试从 { Europe, France, Paris } 分支获取值,使用以下表达式

home = planet.$('Europe').$('France').$('Paris')._value;
console.log(home)

在我们的例子中,这将返回 null,因为我们尚未为该分支分配任何内容。

一旦我们进行以下赋值,返回的值会看起来更好

planet.$('Europe').$('France').$('Paris')._value = "Fromage";

home = planet.$('Europe').$('France').$('Paris')._value;
console.log(home)

这种层级结构让人想起现代 Web,在现代 Web 中,URL 可能具有越来越深的内容,而无需对其他 URL 施加任何结构。

这里非常有趣的特征是,仅仅通过在 Node.js 语言中使用非常自然的表示法(使用“.”和“$()”),我们就已经在数据库的永久存储中直接插入和查询数据。

这样的数据库可以由其他人同时访问,同时提供进程间通信和共享处理的结构。

通过这种 M 到 Node.js 的连接,Javascript 开发人员现在可以使用由 NoSQL 层级数据库 M 驱动的 JSON 原生数据库。

此连接使 Javascript 开发人员能够加入 M 革命并将他们的技能应用于医疗保健 IT 领域,其中大多数大型应用程序都基于 M。来自年轻一代开发人员的贡献是非常需要的

User profile image.
Luis Ibáñez 在芝加哥的 Google Inc 担任高级软件工程师。

评论已关闭。

Creative Commons License本作品采用知识共享署名-相同方式共享 3.0 未本地化版本许可协议进行许可。
© . All rights reserved.