如何查询mongodb中的特定内部对象?

时间:2012-06-18 04:56:29

标签: mongodb

我有一个像这样的集合“testcase”,Test Builds有许多测试用例日志和测试用例日志有很多标签。例如,我有一个查询,其中标签应该有“tag1”。

db.test_builds.find({"logs.tags" : "tag1"})

问题是它获取了测试版本的所有测试用例日志。但我只想要“tag1”存在的测试用例日志。

例如:

{
  "name" : "TestBuild1"
  "logs: [
    {"name" : "Log1"
    "tags" : ["tag1","tag2"]},
    {"name" : "Log2"
    "tags" : ["tag3","tag4"]}
  ]
}

上面的查询返回整个测试版本,但我只想用“Log1”获取Test Build,而不是“Log2”。这怎么可能?

1 个答案:

答案 0 :(得分:0)

在MongoDB中,您无法从数组中提取部分元素。您需要在客户端对其进行过滤,或按照here

所述进行map / reduce