你好,我正在使用arangojs,创建了一个数据库,将数据添加到集合beusers中。
现在我想读取添加的数据。在ArangoDB中,我可以使用以下查询来执行此操作
FOR user IN beusers
FILTER user.password == '3670747394' && user.email == '3817128089'
RETURN user正在做什么
const user = await usedDB.parse(aql`
FOR user IN ${usersCol.name}
FILTER user.password == ${hashedPassword} && user.email == ${hashedEmail}
RETURN user
`)
console.log(user)在arangojs中我得到了
{
error: false,
code: 200,
parsed: true,
collections: [],
bindVars: [ 'value2', 'value0', 'value1' ],
ast: [ { type: 'root', subNodes: [Array] } ]
}readme中的示例对我的帮助仅此而已。
我遗漏了什么?如何读取数据?
发布于 2021-06-16 16:34:46
您希望使用Database.query()获取游标(ArrayCursor),然后希望在游标的结果列表中返回该值(例如,使用ArrayCursor.all())。
因此,代码将如下所示:
const cursor = await usedDB.query(aql`
FOR user IN ${usersCol.name}
FILTER user.password == ${hashedPassword} && user.email == ${hashedEmail}
RETURN user
`);
console.log(await cursor.all()); // returns array of users发布于 2021-05-01 02:12:10
看起来我只是用了错误的方法。正确的答案应该是:
const user = await db.executeTransaction(
{
read: ['beusers'],
},
`
function() {
// This code will be executed inside ArangoDB!
const { query } = require("@arangodb");
return query\`
FOR user IN ${col.name}
FILTER user.password == "${stringHash(
passedUser.password,
)}" && user.email == "${stringHash(passedUser.email)}"
RETURN user
\`.toArray()[0];
}
`,
)https://stackoverflow.com/questions/67321154
复制相似问题