gpt4 book ai didi

mongodb - Mongo 查询必须匹配 1 个子集中的 2 个字段

转载 作者:可可西里 更新时间:2023-11-01 10:01:27 26 4
gpt4 key购买 nike

我目前有以下数据集(简化):

{  
'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”的 url“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 个字段?

感谢任何帮助!

最佳答案

尝试使用 $elemMatch

db.find({'_locales': { '$elemMatch': { 'locale': 'nl_NL', 'url': 'english' } }});

$elemMatch 在数组中的单个元素必须匹配匹配表达式时使用。否则(如您所见),每个条件都可以匹配不同的数组元素。

关于mongodb - Mongo 查询必须匹配 1 个子集中的 2 个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10243454/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com