我在使用RethinkDB的单个连接中运行多个查询时遇到问题。我已经尝试了this问题中的r.do,但没有成功。我也尝试过使用条件更新查询。我要做的是:
最好的方法是什么?看来我可能会遗漏一些东西?
cdef extern from "<unordered_map>" namespace "std" nogil:
cdef cppclass unordered_map[T, U]:
# ... irrelevant stuff expunged ...
bint operator==(unordered_map&, unordered_map&) # Looks properly defined...
在同一个连接中运行
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
})
})
在NodeJS中运行
答案 0 :(得分:1)
我将假设您正在使用此library for node。
你可以实际上允许你做回调或承诺。我会建议承诺避免地狱的支架。
对于承诺,您可以使用bluebird库来简化生活。
您可以通过执行以下操作来完成此操作。
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;
});