0
子集:如果我有類似的集合:檢索數據從MongoDB的
[
{ "test": [ { "a": 1, "b": 2 }, { "a": 10, "b": 1 } ] },
{ "test": [ { "a": 5, "b": 1 }, { "a": 14, "b": 2 } ] },
...
]
如何獲得只由該a
值時b
是2
數據的一個子集?在SQL中,這將是類似於:
SELECT test.a FROM collection WHERE test.b = 2
我也明白,我可以限制哪些數據,我得到的東西,如:
collection.find({ }, { "test.a": 1 })
但是返回所有a
值。我怎樣才能限制它,以便它只返回b
爲2
(WHERE test.b = 2
部分SQL等效值)的值?
因爲他提到價值* s *我想他不能使用這個,將不得不使用聚合框架/地圖減少。值得注意的是,聚合框架雖然很慢。即使使用map-reduce,某些用戶發現這些類型的查詢速度比RDBMS上等效的SQL查詢慢20倍以上[http://stackoverflow.com/a/2613106/324381]。子文檔查詢似乎對MongoDB來說目前有點弱點。 – UpTheCreek