문서 구조쿼리 (모르핀에, MongoDB를) (단지 그림)
직원
{
name : "..",
age : ..,
addresses [
{
"street":"...",
"country":{
name:"..",
continent:"..",
Galaxy:".."
}
}
],
company:".."
}
쿼리 - 난 그냥 주소 한
-> 거리 (유형 문자열) 및 주소 -> 국가 -> 이름 (유형 문자열). 그리고 나는이 기준에 맞는 모든 직원을 얻고 싶습니다.
Address a1 = new Address();
a1.setStreet("bla bla");
Country c = new Country();
c.setName("sth");
a1.setCountry(c);
Query<Employee> q = ds.createQuery(Employee.class).field("addresses").hasThisElement(a1)
결과를 가져 오지 않습니다 (실제로 일치하는 경우). 부분적인 "국가"문서 일치 때문입니다. 을 모두 입력하면 개의 국가 필드가 예상대로 결과를 얻습니다.
질문 # 1 : 위의 해결 방법은 무엇입니까?
질문 # 2 : 주소는 배열이고 여러 주소 (주소 # 거리, 국가 # 이름) 쌍을 가져올 수 있으며 주어진 쌍과 일치하는 직원 목록을 다시 원합니다. 뭔가 같은 :
Query<Employee> q = ds.createQuery(Employee.class).field("addresses").hasThisElement(a1).field("addresses").hasThisElement(a2).field(..) // and so on
참고 :이
Address a = new Address();
a.setStreet("bla bla");
q.createQuery(Employee.class).field("addresses").hasThisElement(a).field("addresses.country.name").equal("hoo");
같은 고장 주소 일치 뭔가하지만이 곳 거리 = "어쩌구 저쩌구"와 country.name 직원을 일치 할 수 = "~이"에! 주소 # 1과 거리! = "bla bla"및 주소. # 2의 country.name = "hoo". 당신은 요점을 얻습니다. 나는 그러한 직원들을 돌려주기를 원하지 않는다.
가능한지 알려주세요. 감사합니다.
이 문제에 대한 해결책을 찾은 적이 있습니까? –