不確定這是否可行,但在這裏。Java morphia - 按列表字段中的值查詢
我有一個MongoDB的(使用嗎啡來訪問它)有一個表像下面(簡化這個例子,但概念是相同的):
{ Name : "Robert", NickNames : [ "Bob", "Twinkletoes" ] }
{ Name : "Trevor", NickNames : [ "Bob", "Mad man", "Tweedledee" ] }
{ Name : "Samuel", NickNames : [ "Sam" ] }
{ Name : "Patrick", NickNames : [ "Bob", "Mad man" ] }
{ Name : "Mark", NickNames : [ "Adam", "Bob", "Georg" ] }
而對於這個例子的目的,讓我們說暱稱總是按字母順序排列,暱稱所在的位置是相關的。
所以,我們可以看到每個人的記錄在列表中可以有不同數量的暱稱。我如何可以執行以下搜索:
給我所有的人以第一暱稱「鮑勃」,第二個綽號「瘋子」(即Person.Nicknames [0] =「鮑勃」 & &人。暱稱[1] =「瘋子」)
應該返回2條記錄 - Trevor和Patrick。
給我所有的人以第一暱稱 「鮑勃」(即Person.Nicknames [0] = 「鮑勃」)
應該返回3個記錄 - 羅伯特,Trevor和帕特里克。
注意,馬克並沒有返回,因爲他在他的「鮑勃」的綽號在第一索引沒有。
有沒有辦法做到這一點?
已經足夠接近我的答案,謝謝!轉換爲morphia時的實際查詢如下所示:*** query.field(「NickNames.0」)。equal(「Bob」); ***請注意,您必須禁用對查詢的驗證才能使其正常工作(** query.disableValidation()**) – 2012-04-18 20:48:36