Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重新思考数据库-逐个运行查询_Javascript_Node.js_Rethinkdb - Fatal编程技术网

Javascript 重新思考数据库-逐个运行查询

Javascript 重新思考数据库-逐个运行查询,javascript,node.js,rethinkdb,Javascript,Node.js,Rethinkdb,我在与RejectDB的单个连接中运行多个查询时遇到问题。我试过上述的r.do,但没有成功。我还尝试过使用条件更新查询。我希望做的是: 打开连接 查询以查看我的字段是否存在,如果存在,请执行一些任务 查询以查看是否存在计数字段,将其减去1 最好的办法是什么?我好像错过了什么 r.connect(config.rethinkdb, function(err, conn) { if (err) { throw err; } else { con

我在与RejectDB的单个连接中运行多个查询时遇到问题。我试过上述的r.do,但没有成功。我还尝试过使用条件更新查询。我希望做的是:

  • 打开连接
  • 查询以查看我的字段是否存在,如果存在,请执行一些任务
  • 查询以查看是否存在计数字段,将其减去1
  • 最好的办法是什么?我好像错过了什么

    r.connect(config.rethinkdb, function(err, conn) {
        if (err) {
            throw err;
        }
        else {
            console.log('Connected.');
            app.set('rethinkdb.conn', conn);
        }
                r.table('upcs').filter({AcceptedUPC:data}).run(conn, (err, cursor) => {
                    if (err) throw err;
                    console.log(data);
                    cursor.toArray((err,resu) => {
                        if (err) throw err;
                        //make a csv with some information
                    })
                })       
    
    并在同一连接中运行

    r.table('upcs').filter({AcceptedUPC:data}).filter(r.row.hasFields("UPCCount")).update({UPCCount: r.row("UPCCount").sub(1)}).run(conn, (err,cursor) => {
                            if (err) throw err;
                        });
    

    在NodeJS中运行它

    我假设您正在使用它

    你可以相信,他们实际上允许你做回访或承诺。我建议承诺避免地狱的包围

    对于承诺,你可以利用图书馆让生活变得轻松

    您可以通过执行以下操作来完成

    r.connect(config.rethinkdb).then(() => {
      console.log("Connected");
      app.set("rethinkdb.conn", conn);
      return r.table('upcs').filter({AcceptedUPC:data}).run(conn);
    }).then((cursor) => {
       console.log(data); //maybe this should be cursor but I don't use rethinkDB
       return cursor.toArray();
    }).then((resu) => {
       //make a csv with some information
    }).catch((err) => {
       throw err;
    });