在ArangoDB中,可以使用Arango AQL查询语言中的NOT IN运算符来实现NOT IN查询。下面是一个使用Arango AQL查询语言的示例代码:
const aql = require("arangojs").aql;
const db = require("arangojs")();
async function notInQuery(collectionName, values) {
const query = aql`
FOR doc IN ${db.collection(collectionName)}
FILTER doc._key NOT IN ${values}
RETURN doc
`;
const cursor = await db.query(query);
const result = await cursor.all();
return result;
}
const collectionName = "myCollection";
const values = [1, 2, 3];
notInQuery(collectionName, values)
.then((result) => {
console.log(result);
})
.catch((error) => {
console.error(error);
});
在上面的示例中,我们首先引入了arangojs
模块并创建了一个ArangoDB数据库实例。然后,我们定义了一个notInQuery
函数,该函数接收一个集合名称和一个值的数组作为参数。该函数使用Arango AQL查询语言来执行NOT IN查询,返回结果为不在给定值数组中的文档。
在查询中,我们使用了aql
模板字符串来构建查询,其中${db.collection(collectionName)}
表示要查询的集合。我们使用FILTER
语句和NOT IN
运算符来排除在给定值数组中的文档。最后,我们使用RETURN
语句返回查询结果。
在示例中,我们调用notInQuery
函数,并传入集合名称和值数组作为参数。然后,我们使用.then
方法处理查询结果并将其打印到控制台。如果发生错误,我们使用.catch
方法捕获并打印错误消息。