文獻結構(只是爲了說明)查詢基於嵌套文件的可用的部分數據(在嗎啡,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)
DOES NOT獲取結果(而實際上有一個真正的比賽)。看起來像是因爲部分「國家」文件匹配。如果我填寫全部字段的國家其預期的結果。
問題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」和country.name =「hoo」在地址#2中。你明白了。我不希望這樣的員工被退回。
請讓我知道這是否可能。非常感謝。
你碰巧找到了解決這個問題的方法嗎? – 2014-02-10 08:57:47