在ArangoDB中,您可以使用AQL(ArangoDB查询语言)或Spring Data ArangoDB来过滤具有两个子属性的文档
假设您有一个名为users
的集合,其中包含具有firstName
和lastName
子属性的文档。您可以使用以下AQL查询来过滤这些属性:
FOR user IN users
FILTER user.firstName == 'John' AND user.lastName == 'Doe'
RETURN user
这将返回所有名为John Doe的用户文档。
首先,确保您的项目中已包含Spring Data ArangoDB依赖项。在Maven项目中,将以下依赖项添加到pom.xml
文件中:
<dependency>
<groupId>com.arangodb</groupId>
<artifactId>spring-data-arangodb</artifactId>
<version>3.2.3.RELEASE</version>
</dependency>
接下来,创建一个Spring Data ArangoDB存储库接口,该接口扩展ArangoRepository
:
import com.arangodb.springframework.repository.ArangoRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface UserRepository extends ArangoRepository<User, String> {
}
在此示例中,User
是具有firstName
和lastName
属性的实体类。确保在实体类中使用@Document
注解并指定集合名称:
import com.arangodb.springframework.annotation.Document;
@Document("users")
public class User {
private String id;
private String firstName;
private String lastName;
// 省略构造函数、getter和setter方法
}
现在,您可以在服务类中使用UserRepository
来过滤具有特定firstName
和lastName
属性的用户:
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
方法来过滤具有特定firstName
和lastName
属性的用户。
领取专属 10元无门槛券
手把手带您无忧上云