これが可能かどうかはわかりませんが、ここに行きます。
次のようなテーブルを持つ MongoDB (アクセスに morphia を使用) があります (この例では単純化されていますが、概念は同じです)。
{ 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" ] }
この例では、ニックネームが常にアルファベット順であり、ニックネームの位置が関連しているとします。
したがって、すべての人物レコードがリスト内のニックネームの数を異ならせることができることがわかります。次の検索を実行するにはどうすればよいですか。
最初のニックネームが「Bob」で、2 番目のニックネームが「Mad man」のすべての人を教えてください (つまり、Person.Nicknames[0] = "Bob" && Person.Nicknames[1] = "Mad man")
Trevor と Patrick の 2 つのレコードを返す必要があります。
最初のニックネームが "Bob" のすべての人を教えてください (つまり、Person.Nicknames[0] = "Bob")
Robert、Trevor、および Patrick の 3 つのレコードを返す必要があります。
Mark のニックネーム "Bob" が最初のインデックスに含まれていなかったため、Mark は返されなかったことに注意してください。
これを行う方法はありますか?