2012-11-10 36 views
2

找我有一些問題的MongoDB,我找了一個答案,但我無法找到任何 是解決我的問題....的MongoDB:由內含價值

db.coders.save({ 
'name': 'John', 
'languages' : { 'php':'bad','java':'good','brainfuck':'very bad'} 
}); 

db.coders.save({ 
'name': 'Sarah', 
'languages' : { 'php':'good','java':'bad','brainfuck':'very bad'} 
}); 

db.coders.save({ 
'name': 'Tom', 
'languages' : { 'php':'very good','java':'good','brainfuck':'bad'} 
}); 

現在我想找到任何編碼器知道任何語言'非常好'...怎麼樣?

回答

4

你找不到它,因爲它是不可能的。搜索操作符都不在您提供的模式上。

最簡單的解決方法是改變模式一點點:

db.coders.save({ 
'name': 'John', 
'languages' : [ { n: 'php', v: 'bad'},{n:'java', v: 'good'},{n : 'brainfuck', v: 'very bad'}] 
}); 

在這種情況下,你可以使用下面的查詢查詢數據:

db.coders.find({'languages.v' : 'good'})