2010-09-27 66 views
0

假設這樣一個集合:如何在字段名稱中獨立地查找mongoDB集合中的值?

People 
{ 
    "name": "John Doe", 
    "email": "John Doe <[email protected]>", 
    "stuff": "foo" 
    "morestuff": "bar" 
}, 
{ 
    "name": "Homer Simpson", 
    "email": "Homer Simpson <[email protected]>", 
    "stuff": "bar" 
    "morestuff": "foo" 
}, 
{ 
    "name": "Bart Simpson", 
    "email": "Bart Simpson <[email protected]>", 
    "stuff" : "foo" 
    "morestuff": "foo" 
    "evenmore": ["bar", "foo", "baz"] 
} 

什麼可能是查找的字符串「富」(確切,無子)出現的所有的最佳途徑,在以往任何時候都可能發生?我想要完成的是將字符串「foo」的所有出現更新爲其他字符串,或者將其從集合中的文檔中刪除。

我知道這可能看起來像一個壞的數據庫設計,我只是想清楚我想要做的:)

回答

1

沒有查詢,將做到這一點。

對於一般情況,您必須遍歷所有文檔,並查看所有屬性。

如果你能限制可能的屬性鍵,你可以構建像

name = 'foo' or email = 'foo' or stuff ='foo' 
    or morestuff = 'foo' or evenmore = 'foo' 

查詢如果是後者是可能的,你也可以把它分解成各個領域,這是有意義的單獨的查詢,因爲你可以那麼也可以將它們變成原子更新查詢以將值更改爲新的值。

+0

感謝您的回答。我覺得沒有簡單的解決方案,就像RDBMS中的情況一樣。也許可以使用map/reduce做類似的事情? – xlttj 2010-09-28 06:24:52

相關問題