node.js - ArangoDB + NodeJS = 需要以下任务的工作示例代码

标签 node.js arangodb

我来自 MongoDB,现在我想使用 ArangoDb 来使用 ACID 事务。我仅将 NodeJS 用于编程。

我遇到的问题如下,我无法将 NPM 代码示例带入生活!

有 3 个带有 NodeJS 驱动程序的 NPM 包。 这些代码示例都不起作用!

然后,当我尝试使用 HTTP REST API 时,它们至少可以部分工作。 这是一种访问 ArangoDB 的 HTTP REST API 方法。

但是,我如何指定应该将文档插入到哪个数据库中?它总是将它插入到 _System-Database 中。我不想要。

在这里你可以看到我的代码..

var restify = require('restify');

// Client
var client = restify.createJsonClient({
  url: 'http://192.168.142.139:8529',
  version: '~1.0'
});

// Now call this insert function to insert a new Document into the ArangoDB Database
insert (function(e,o){

});

function insert ( callback) {
  var data = {
        user : 'Harryblabla',
        nicenumber : 8675,
        nicestring : 'des04950'};

  client.post('/_api/document?collection=testcollection1&createCollection=true&waitForSync=true', 
    data, function (err, req, res, obj) {

    if (obj.error==false) {
        console.log('ok - saved');
        console.log('result '+JSON.stringify(obj));
        callback (err, 1);
    } else {
        console.log('not saved');
        callback ('error', null);
    }
  });

}

它确实在“testcollection1”中插入了文档,但我如何指定到哪个数据库中?

此外,您能否举例说明如何使用字段上的唯一索引“确保索引”、“更新 $set 以设置字段”以及如何像在 MongoDB 中那样使用 findOne?

您还可以使用这些 NPM 包之一编写代码。但我实现的唯一方法是通过 HTTP REST Api..

请,谢谢。我喜欢 ArangoDb,因为它是开源的,提供 ACID 事务。但主要缺点是缺少教程,缺少示例代码...

* 我还需要:更新集合中的一个字段,如果不存在则创建它:*

在这里您可以看到关于如何仅更新特定字段的 NodeJS + MongoDB 示例。如果它不存在,它将被创建。这正是我在 Nodejs 中使用 ArangoDB 所需要的。你能给我写个例子吗?请

// Mongo DB connection already opened.
// this is the function to update or create if not exists
mycollection.update({txid: tx.txid},
      {$set: {txid: tx.txid, nice: tx.nice, confvalidated: true}}, {upsert: true}, function(err, records1){
    if (records1) {
      console.log('insertreceived: Amount '+tx.nice+' C: '+tx.confirmations+ 'INSERT RECEIVED: '+tx.txid);
      callback(null, records1);
    } else {
      //callback('error');
      callback('error', null);
    }
   });

最佳答案

还有一个Javascript/Node.js持续开发的可用于 ArangoDB 的驱动程序(已确认使用 2.0)。在此驱动程序的自述文件中有如何安装和使用它的示例,文档可用 here .如果这对您不起作用,请向我们发送有关您的问题的错误报告,然后我们将解决问题。

作为更新问题的代码示例(我刚刚采用了您在 MongoDB 示例中使用的相同对象,tx.txid 必须是文档的 _id 属性。)您可以使用:

var arango = require('arangojs');
var db = arango.Connection('http://127.0.0.1:8529');
mydb = db.use("yourDatabaseName");
mydb.document.patch(tx.txid,  {
  nice: tx.nice,
  confvalidated: true
});

关于node.js - ArangoDB + NodeJS = 需要以下任务的工作示例代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23854675/

相关文章:

node.js - 如何使用 NodeJS 进行单点登录?

node.js - 比较两个密码哈希——nodejs

json - 从 ArangoDB 导出到 JSON 的工具

arangodb - 如何在 arangodb docker 容器中停止和启动 arangodb 服务器

node.js - 在开发过程中,我如何查看/复制 Cakefile 中的文件?

node.js - 如何使用 Oauth 请求提交和处理请求参数?

node.js - 如何在elasticsearch中对地理坐标应用过滤器?

node.js - 如何提高ArangoDB在负载(多个并发查询)下的性能?

arangodb - AQL:查找名字出现多次的所有美国人

java - 如何在 ArangoDB 中存储图像?