以下の記録があります。
Record 1:
{
"status": "active",
"users": [
{
"name": "foo",
"status": "a"
},
{
"name": "foo",
"status": "b"
}
]
}
Record 2:
{
"status": "active",
"users": [
{
"name": "bar",
"status": "a"
},
{
"name": "foo",
"status": "b"
}
]
}
user.name
ここで、が「foo」であり、が「a」であるレコードのみを返したいと考えてuser.status
います。つまり、要件を満たすため、レコード 1 を取得する必要があります。
これを実現するために、レコード内の配列に対して AND 演算を行うにはどうすればよいですか? 次のクエリを試しました。
{
"$and": [
{
"users.name": "foo"
},
{
"users.status": "a"
}
]
}
しかし、両方のレコードを取得します-最初のレコードのみが必要です(ユーザー配列には、名前が「foo」でステータスが「a」のエントリがあるため)。
手がかりはありますか?