これが可能かどうかはわかりませんが、ここには入ります。Java morphia - リストフィールドの値による照会
私は(この例では単純化しますが、考え方は同じです)、次のようなテーブルで(それにアクセスするために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] = "Mad man")
TrevorとPatrickの2つのレコードを返す必要があります。ロバート、トレバーとパトリック -
- は、最初のニックネームは "ボブ"(すなわちPerson.Nicknames [0] = "ボブ")
が3つのレコードを返すべきで私にすべての人々を与えます。
「ボブ」のニックネームが最初のインデックスにないため、マークが返されなかったことに注意してください。
これを行う方法はありますか?
私は答えに感謝してくれました。実際にクエリをmorphiaに変換すると、次のようになります:*** query.field( "NickNames.0")。equal( "Bob"); ***注意してください。 (** query.disableValidation()**) –