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