2012-06-18 2 views
-1

У меня есть коллекция «testcase», как это, в Test Builds есть много журналов тестовых журналов, а журналы тестов имеют множество тегов. Например, у меня есть запрос, где теги должны иметь «tag1».Как запросить конкретные внутренние объекты в mongodb?

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

Проблема в том, что он получает все журналы тестовых сборок тестовых сборок. Но мне нужны журналы журналов тестов, где существует «tag1».

Например:

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

Запрос выше возвращает всю тестовую сборку, но я только хочу, чтобы получить тестовую сборку с «LOG1», но не «Log2». Как это возможно?

+0

Точный дубликат http://stackoverflow.com/questions/3985214/mongodb-extract-only-the-selected-item-in-array , в котором перечислены несколько ответов. –

ответ

0

В MongoDB вы не можете извлечь часть элементов из массива. Вам необходимо отфильтровать его на стороне клиента или сделать карту/уменьшить, как объяснено. here

+0

Существует также билет JIRA для этой функции https://jira.mongodb.org/browse/SERVER-828 –

+0

[Теперь вы можете] (http://stackoverflow.com/questions/3985214/mongodb-extract-only-the -selected-вещь-в-массиве). –

Смежные вопросы