私はmongodbコレクション「Contact」に次のドキュメント構造を持っています。「numbers」と呼ばれるサブドキュメントの配列があります。
{
"name" : "Bill",
"numbers" : [
{
"type" : "home",
"number" : "01234",
},
{
"type" : "business",
"number" : "99099"
},
{
"type" : "fax",
"number" : "77777"
}
]
}
「自宅」と「会社」の番号のみを照会したい場合は、mongodb-shell で次のようにすることができます。
db.Contact.find({ numbers: { $elemMatch: {
type : { $in : ["home", "business"]},
number: { $regex : "^012" }
}}});
しかし、モルフィアでこれを行う方法は? 何か方法はありますか?
「$elemMatch」が morphia でサポートされていることは理解しています。だから私は次のようなことができます:
query.filter("numbers elem", ???);
しかし、サブドキュメントの複合クエリを追加するにはどうすればよいでしょうか?