私は現在、次のデータセットを持っています(簡略化):
{
'component_id':1,
'_locales':[
{
'url': 'dutch',
'locale': 'nl_NL'
},
{
'url': 'english',
'locale': 'en_US'
}
]
} (etc more rows similar to this but unique urls)
ここで、クエリを実行して、ロケール'en_US'にurl'英語が存在するかどうかを確認します。
db.find({'_locales.locale':'en_US','_locales.url':'english'})
これは確かにデータセット行を提供します。ただし、ロケール'nl_NL'の場合はURL'英語'を確認したい場合。
db.find({'_locales.locale':'nl_NL','_locales.url':'english'})
クエリが一致しないため、不要なデータセットが返されます。ロケールがnl_NLで、同じ行のURLが「英語」の場合にのみ一致させたいので
私は試した
db.find({'_locales.locale':'en_US','_locales.$.url':'english'})
これはうまくいきませんでした、これを行う方法はありますか?2つのフィールドを別々にではなく、1つの行の2つのフィールドに一致させるには?
どんな助けでも大歓迎です!