我目前有以下数据集(简化):
{
'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'english 是否存在:
db.find({'_locales.locale':'en_US','_locales.url':'english'})
这确实为我提供了数据集行。但是,如果我想检查语言环境是否为“nl_NL”,则网址为“english”;
db.find({'_locales.locale':'nl_NL','_locales.url':'english'})
我仍然得到了我不想要的数据集,因为查询不匹配。因为我只希望它在语言环境是 nl_NL 并且在同一行中的 url 是“english”时匹配
我试过了
db.find({'_locales.locale':'en_US','_locales.$.url':'english'})
这不起作用,有什么办法可以做到这一点吗?以便它匹配 1 行中的 2 个字段而不是分别匹配 2 个字段?
任何帮助表示赞赏!