2
我公司目前有以下數據集(簡體)2個字段匹配:蒙戈查詢必須在1子
{
'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「網址「英語存在:
db.find({'_locales.locale':'en_US','_locales.url':'english'})
這確實爲我提供了數據集的行。但是,如果我想檢查是否爲地區'nl_NL'url'english';
db.find({'_locales.locale':'nl_NL','_locales.url':'english'})
我仍然得到它,我不想因爲查詢shoudln't匹配的數據集回來。因爲現在我只希望它匹配如果語言環境是nl_NL和同一行的URL是「英語」
我試圖
db.find({'_locales.locale':'en_US','_locales.$.url':'english'})
這沒有工作,有沒有辦法在這樣做所有?以便它分別匹配1行中的2個字段而不是2個字段?
任何幫助表示讚賞!使用$elemMatch
db.find({'_locales': { '$elemMatch': { 'locale': 'nl_NL', 'url': 'english' } }});
$elemMatch
謝謝!那完美的工作! – 2012-04-20 09:36:27
@WimWisselink:不客氣,歡迎來到Stack Overflow!如果這個答案解決了您的問題,那麼您可以將其標記爲已接受的答案。這會使您的「接受答案」比例保持較高水平,這對您而言是件好事。 – 2012-04-20 09:41:18