首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在ArangoDB中过滤两个子属性的简明方法(AQL / Spring Data ArangoDB)

在ArangoDB中,您可以使用AQL(ArangoDB查询语言)或Spring Data ArangoDB来过滤具有两个子属性的文档

  1. 使用AQL:

假设您有一个名为users的集合,其中包含具有firstNamelastName子属性的文档。您可以使用以下AQL查询来过滤这些属性:

代码语言:javascript
复制
FOR user IN users
    FILTER user.firstName == 'John' AND user.lastName == 'Doe'
    RETURN user

这将返回所有名为John Doe的用户文档。

  1. 使用Spring Data ArangoDB:

首先,确保您的项目中已包含Spring Data ArangoDB依赖项。在Maven项目中,将以下依赖项添加到pom.xml文件中:

代码语言:javascript
复制
<dependency>
    <groupId>com.arangodb</groupId>
    <artifactId>spring-data-arangodb</artifactId>
    <version>3.2.3.RELEASE</version>
</dependency>

接下来,创建一个Spring Data ArangoDB存储库接口,该接口扩展ArangoRepository

代码语言:javascript
复制
import com.arangodb.springframework.repository.ArangoRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface UserRepository extends ArangoRepository<User, String> {
}

在此示例中,User是具有firstNamelastName属性的实体类。确保在实体类中使用@Document注解并指定集合名称:

代码语言:javascript
复制
import com.arangodb.springframework.annotation.Document;

@Document("users")
public class User {
    private String id;
    private String firstName;
    private String lastName;

    // 省略构造函数、getter和setter方法
}

现在,您可以在服务类中使用UserRepository来过滤具有特定firstNamelastName属性的用户:

代码语言:javascript
复制
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {

    @Autowired
    private UserRepository userRepository;

    public List<User> findUsersWithFirstNameAndLastName(String firstName, String lastName) {
        return userRepository.findByFirstNameAndLastName(firstName, lastName);
    }
}

在上面的示例中,findByFirstNameAndLastName方法是由Spring Data ArangoDB自动生成的,前提是您在UserRepository接口中正确指定了方法名称。

现在您可以根据需要调用findUsersWithFirstNameAndLastName方法来过滤具有特定firstNamelastName属性的用户。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何在Ubuntu 14.04上安装和使用ArangoDB

创建文档 在基于SQL的数据库中有行的地方,ArangoDB有文档。ArangoDB中的文档是JSON对象。每个文档与集合相关联,并有三个核心属性:_id,_rev,和_key。...每个集合都提供与该集合中的文档进行交互的功能。save函数接受任何JSON对象并将其作为文档存储在集合中,返回上述核心属性以及是否发生了错误。每个操作的返回也是一个JSON对象。...AQL基础知识 AQL是一种声明性语言,这意味着查询表达应该实现的结果,但不表示应该如何实现。它允许查询数据,但也可以修改数据。两种方法可以组合以实现复杂的任务。...操作包括过滤,修改,选择更多文档,创建新结构,或(如本示例中)将文档插入数据库。实际上,AQL也支持所有CRUD操作。 要获得数据库中所有歌曲的概述,请运行以下查询。...加入AQL 使用文档存储作为数据库有几个含义。您应该以与使用关系数据库时不同的方式对数据建模。 在文档存储中,您可以嵌入数据,否则这些数据将被建模为关系,但这种方法并不总是可行的。

2.7K00

ArangoDB 系列(1) —— 初识 ArnagoDB

集合管理命令 集合相关方法 图数据库 AQL 语句执行 ArangoDB 的 AQL 语法 插入数据 修改语句 删除语句 查询语句 图的遍历查询 前置知识 ArangoDB 的特性 灵活的数据类型,...,可以让应用程序在持久性和性能之间做出选择 ArangoDB 能够更加高效的使用现代存储硬件,类似于ssd 和大型缓存 使用 ArangoDB 作为应用服务器,能够融合应用和数据,以适应更大的吞吐量 ArangoDB...在客户端压缩包里的 bin/ 目录下的所有可执行文件在服务端的压缩包中全部存在,如果是本地服务端安装的话,且已经配备了 ArangoDB 环境变量,则可以直接使用 arangosh 命令,无需安装 ArangoDB..._collection("Characters").properties() 两种方式以直接调用相关方法,接下来主要以db._Collection("Characters") 方式为主。..._collection("Characters").all().toArray() # 列出集合中的前两个数据 db.

2K20
  • 多数据模型数据库 | 应用实例解析

    edge被保存在特定的edge集合中,每条edge都必须含有from和to属性,这两个属性分别指向该edge的开始和结束的vertices。 通过上面的的方式实现了三种数据模型的统一。...>>>> 飞机维护记录查询 我们将使用ArangoDB查询语言(AQL)来完成某些特定的查询。现在我们来看下我们可以使用AQL来完成哪些查询。...查询结果与图结构正交的查询 使用纯粹的图数据库执行这种查询,会比较麻烦,因为我们的查询无法明确的对图结构进行过滤,所以我们不得不求助于二级索引。例如,下次维护日期会存储在组件的某个属性上。...查询优化器能够识别nextMaintenance属性上的二级索引的存在,这样执行引擎不必执行完整的集合扫描来进行filter条件的过滤。...可以看到,AQL在RETURN语句中以JSON文档的形式,返回查询到的数据的相关属性内容。

    1.9K10

    一网打尽 NoSQL:当下 NoSQL 类型、适用场景及使用公司

    在实际应用中,NoSQL 数据库的分类界限其实没有那么明显,往往会是多种类型的组合体。...Key-Value 数据库中根本没有通过值查询的途径。 不适合需要储存数据之间的关系。在 Key-Value 数据库中不能通过两个或以上的键来关联数据。 不适合需要支持事务的场景。...常见图形数据库 :Neo4j、ArangoDB Neo4j Neo4j 是一个高性能的,NOSQL 图形数据库,它将结构化数据存储在 “图形网络上” 而不是“表中”。...数据库系统支持三个重要的数据模型(键 / 值,文档,图形)。ArangoDB 包含一个数据库核心和统一查询语言 AQL(ArangoDB 查询语言)。...查询语言是声明性的,允许在单个查询中组合不同的数据访问模式。ArangoDB 是一个 NoSQL 数据库系统,但 AQL 在很多方面与 SQL 都类似。

    3.9K20

    如何使用Node.js编辑XML文件

    由于XML仍然继续用作数据交换格式(主要是在企业应用程序中),因此了解如何以编程方式操纵XML文件的内容可能非常有用。...您可以轻松地在Node.js中编写一个小的脚本来立即进行更改,而不必手动编辑数百行XML。...在 之前的文章中,我们研究了如何通过使用开源 xml2js模块将XML文件转换为Node.js中的JSON对象。 今天,您将学习如何使用Node.js编辑XML文件。...基本设置 首先,通过在终端中键入以下命令,将xml2js模块添加到您的Node.js应用程序中: $ node install xml2js --save 接下来,创建一个名为index.js的新JavaScript...让我们用另一个称为ArangoDB的图形数据库替换Neo4j数据库: // replace `Neo4j` with `ArangoDB` result.databases.database[2].name

    7.2K20

    2018-11-20 CG Pipeline: 最佳图数据库性能对比--为您的CG生产数据服务

    API ArangoDB 的图形存储基于其自己的文档存储系统, 每个顶点都作为json条目存储在一个集合中 查询可进行配置(例如,您可以选择深度优先遍历)ArangoDB 提供了一个遍历对象,允许您构建特定的路径...,还有其他的助手,如最短路径查找或路径长度检索,可以满足图形查询的大部分需求 查询结果记录易于显示和分析 ArangoDB 和Python 客户端很容易理解,而且文档编制完善 在ArangoDB Web...UI中可视化您的图形, 使数据存储更容易 其开发公司非常活跃,并提供很多的额外支持项目 1.如果想用自己的脚本实现同等性,需要自己编写“获取或创建”方法 还是一个年轻的数据库 ArangoDB 是开发者和用户最友好的数据库...除了图形存储以外,其文档存储也将使您的生产数据管理更加轻松方便,可以安全地用于在CG生产环境中 OrientDB Java / / 由于用户反馈问题...,我们未对其进行测试 在CG生产环境中使用有风险 结论: ArangoDB 是我们这组测试中最喜欢的数据库,如果正在考虑使用图形数据库,建议首选测试ArangoDB。

    1.5K20

    【详解】图数据库 | 灵活存储复杂关联关系

    属性(properties):类似KV数据库中的键值对,节点和边都可以有属性。 图数据库将数据以属性方式存储在节点或边中,以边来表示节点之间的关系,并用特定查询语言,进行数据检索。 ?...在表现实体间关系时,RDBMS会将另一个实体的唯一标识,存储到表中的某一列,来与其他实体进行关联,例如典型的主键、外键。...当遇到多对多关系时,典型做法会引入中间表,来存储两个实体ID间的关系,例如我们最熟悉的用户角色多对多关系。在查询时,需要多个表进行join连接,依次查询所需信息。...而图数据库,会直接存储两个实体之间的关系。仍以用户角色多对多关系举例,用户实体会有一个指针直接指向对应的角色记录,而这个指针,就是上文所述的“边(edge或relationships)”。...在搜索引擎场景中,利用图数据库形成知识网络,当用户输入关键词检索时,和关键词义衍生的其他条目也可展现出来,在大量数据下,可轻松维护这些知识的相互联系。

    4.1K20

    查询图数据库的新ISO标准GQL

    图计算的基础是属性图,它在描述动态变化的数据方面更胜一筹。 图数据库已广泛使用了几十年,直到最近,该形式才引起了人们对成为关键组件的新兴趣大型语言模型的生成式 AI 应用程序。...图模型可以可视化复杂、相互连接的系统。 Rathle 解释说,LLM 的缺点在于它们在某种程度上是黑匣子。“无法理解语言模型背后的推理。它只是遵循神经网络并做自己的事情,”他说。...查询: MATCH (movie:Movie) RETURN movie.title 将返回数据库中具有“Movie”标签的所有节点。 Table 2....其他图查询语言包括NebulaGraph 的 NQL,Apache Tinkerpop 的 Gremlin,RDF 的 SPARQL 以及 ArangoDB 的 AQL 。...据 Rathlee 称,至少有十几个不同的图数据库系统建立在 OpenCypher 之上,包括来自 Amazon Web Services 的流行的 Neptune。

    30310

    数据架构选型必读:4月数据库产品技术解析

    ,更加高效的支持两种不同特性的查询的执行。...ArangoDB 3.6版本更新亮点包括: OneShard功能; 性能优化; 子查询加速(最高30倍); 后期文件实现; 不匹配文档的早期修剪; 集群中的并行AQL执行; 简化的更新和替换查询; ArangoSearch...在v5.0版本中,回滚段中的记录信息相应地引入了ULT字段,从而使分布式一致性事务能力得到了进一步的增强。...; FilterableTableSource在作业运行时不使用过滤器; 启动TaskExecutor会阻止YarnResourceManager的主线程; 具有整个文件输入拆分的多字节定界符上的DelimitedInputFormat...; 支持非GTID模式到GTID模式的数据同步; 支持binlog文件损坏时跳过继续解析的功能,在主实例及binlog均损坏的场景下,可最大程度在备库中恢复数据并提供使用; 提供一种监控内存使用的方法,

    1.8K20

    探索图数据库在数据资产可视化中的应用

    传统数据库解决思路 传统解决上述问题最简单的方法就是建立一个关系模型,我们可以把每个员工的信息录入表中,存在诸如 MySQL 之类的关系数据库,图片展示的是最基本的关系模型图。...DGraph的存储结构与cayley同样借鉴了google的论文,将每个节点的属性也作为一个节点与主节点产生联系,这样更有益于基于batch来设计运算方法。...性能和可扩展性不好 索引: 侧重文档数据库,主要还是SB树索引导致,空间浪费比较大;插入节点与另外两个数据库(neo4j和ArangoDB)相差无几,但是在插入关系中另外两个数据库都做了优化,OrientDB...在数据量这么大的场景中,使用传统 SQL 会产生很大的性能问题,原因主要有两个: 1、大量 JOIN 操作带来的开销: 之前的查询语句使用了大量的 JOIN 操作来找到需要的结果。...JanusGraph与应用的集成,有如下两种方式: 第一种:可以把JanusGraph嵌入到应用程序中去,JanusGraph和应用程序处在同一个JVM中。

    1.9K20

    IM开发基础知识补课(六):数据库用NoSQL还是SQL?读这篇就够了!

    将表放入存储系统中有两种方法,而我们绝大部分是采用行存储的。行存储法是将各行放入连续的物理位置,这很像传统的记录和文件系统。 列存储法是将数据按照列存储到数据库中,与行存储类似。...数据库系统支持三个重要的数据模型(键/值,文档,图形),其中包含一个数据库核心和统一查询语言 AQL(ArangoDB 查询语言)。 查询语言是声明性的,允许在单个查询中组合不同的数据访问模式。...ArangoDB 是一个 NoSQL 数据库系统,但 AQL 在很多方面与 SQL 类似。 ?...节点和边都可以有自己的属性。不同实体通过各种不同的关系关联起来,形成复杂的对象图。 针对关系数据,两种数据库的存储结构不同: ?...缺点如下: 1)具有支持节点,关系和属性的数量的限制; 2)不支持拆分。 10.3 使用场景 适用场景如下: 1)在一些关系性强的数据中,例如社交网络; 2)推荐引擎。

    2.5K41

    「图型计算架构」GraphTech生态系统2019-第1部分:图型数据库

    在这两个方面,我们发现商业和开源系统以及属性图和RDF三元组存储是存储图形数据的两个主要模型。 ?...Type of storage for graph-like data 原生系统 在主要的原生系统中,Neo4j是市场领导者,这些系统的模型都经过了完全优化,可以处理类似图形的数据。...这些数据库旨在支持各种数据类型,在一个单独的数据存储中处理各种模型,如文档、键值、RDF和图形。如果您需要处理多种数据类型,但又希望避免管理各种筒仓的操作复杂性,则它们特别方便。...在包含graph作为支持模型的原生多模型数据库中,我们可以将ArangoDB命名为ArangoDB。...精彩图文详解架构方法论,架构实践,技术原理,技术趋势。我们在等你,赶快扫描关注吧。

    62220

    Graph Mining:审视世界的眼睛

    人类总是在不停的审视自我和认知世界,计算机科学作为人类思维方式和行为能力的延伸,也是从深度和广度两个方面去求真,求是。...从近两年的Gartner的技术曲线来看,机器学习(Machine Learning)和深度学习(Deep Learning)都获得了大量的关注,其中机器学习这项技术在2018年的新兴技术曲线中并未出现,...图数据库的热门选项[6]主要是Neo4j[7],OrientDB[8]和ArangoDB[9]等,这三家公司在2018年还因为ArangoDB搞的Benchmark的问题来回交锋多次[10][11],大家感兴趣的话可以自己去翻阅...图 4.5 Louvain算法中的关键两个步骤 Louvain算法主要分为两个步骤: 在第一个阶段中,该算法遍历网络中的每个节点。对于每个节点,将其从当前社区中移除,并替换它到其邻居的社区中。...HITS:该算法会给每个节点两个属性:Hub(枢纽性)和Authority性(权威性),该算法由Kleinberg在1997年在论文《Hubs, Authorities, and Communities

    1.8K10

    NoSQL和数据可扩展性

    Neo4j, GraphDB, Allegrograph, MarkLogic, OrientDB, ArangoDB 混合型或多模型 支持两种或多种上述类型的数据。...如果从列表中检出了四个或更多的项目,那么NoSQL就适合你。 NoSQL权衡 NoSQL数据库的总拥有成本(TCO)往往比关系型数据库要低。 这主要是因为两件事情。...它还可以以Web应用程序友好的JSON格式存储和检索数据。 该数据可以像其他键值存储一样由行或分区键检索。您还可以添加二级索引来支持不同属性的查询。这些索引允许更复杂的查询机制。...从示例应用程序文件夹中输入: DEBUG = express:* npm start 过了一会儿,你会看到“在3000端口上运行” 现在打开浏览器http// localhost:3000/ 您将看到一个欢迎页面和两个搜索表单.../views/movies.jade中 请注意,在movies.js中配置了两条路由 - 一条GET路由和一条POST路由。每条路线都会有些不同。

    12.3K60

    如何去伪存真地看懂一份图数据库的评测报告?

    1 基础知识 图数据库中的操作分为两类: 面向元数据的操作,即面向顶点、边或它们之上的属性字段的操作;操作可以具体分为增、删、改、查四类。...以上两者兼而有之:以最短路径方式遍历的模板路径或组网查询、带方向或条件过滤的模板K邻查询、定制化的图算法等。 配图1中展示了BFS与DFS之间的差异。...这个特征区别于金融行业中的交易流水图——无论是顶点还是边都可能存在多个属性,可以被用来对实体或关系进行精准的查询过滤、筛选、排序、聚合运算、下钻、归因分析等。...不支持点边属性过滤的图数据库可以认为功能没有实现闭环,也不具备商业化价值。 图2 单边图 vs....图5 图算法查询时间对标(PageRank & LPA) 实时更新 在基准测试和对标测试中图数据库更新一般分为两类操作: 只面向元数据(TP):这个操作只影响点、边或其属性字段,从传统数据库视角看属于一种事务性操作

    1.1K30

    Spring Data(一)概念和仓库的定义

    Spring Data Aerospike Spring Data ArangoDB Spring Data Couchbase Spring Data Azure DocumentDB...由于各个Spring Data模块的起始日期不同,他们中的大多数都有着主要版本和次要版本,找到适合的版本的最简单的方法是依赖Spring Data 版本串BOM,它是我们用最合适的版本定义的。...这些将允许你在Spring Data仓库方法中的最顶端定义你自己的抽象。...仓库方法中的null处理 作为Spring Data2.0,CRUD方法返回一个使用java8的Optional的独立的聚合实例,标明值的潜在缺少。...在一个实体类中使用多个实体技术注解可以服用实体类,但是Spring Data将不能指定仓库绑定哪一个Spring Data模块。区分仓库的最后一个方法是规范仓库基础包的路径。

    2.5K10
    领券