У меня есть некоторый поддокумент в MongoDB, который иногда включает в себя разные типы - строку, другой поддокумент, другой вложенный поддокумент и т. Д. Я пытаюсь создать запрос, который будет искать в этом субдокумент, независимо от его типа.Как найти вложенные субдокументы MongoDB в разных глубинах
Учитывая следующие документы:
{ name: "test1", content: "test contents"}
{ name: "test2", content: {family: "tests family content", last: "another test content"} }
{ name: "test3", content: {subdocument: {family: "super family contents", last: "last test content"} } }
Я хочу использовать запрос, который будет искать во всех строках в пределах всех документов и поддокументов. Уже попробовал следующий запрос, но он возвращает только самое вложенный уровень поддокумента - content.subdocument.family
:
{ $or: [
{"content": {'$regex': '.*conten.*', '$options': 'i'}},
{"content.family": {'$regex': '.*conten.*', '$options': 'i'}},
{"content.last": {'$regex': '.*conten.*', '$options': 'i'}},
{"content.subdocument.family": {'$regex': '.*conten.*', '$options': 'i'}},
{"content.subdocument.last": {'$regex': '.*conten.*', '$options': 'i'}}
]}
Можно ли создать один запрос, который будет перебирать через все вложенные строки \ Пучину сразу?
Это очень неясно, что вы просите. Пожалуйста, прочитайте [как спросить] (http://stackoverflow.com/help/how-to-ask) хороший вопрос и используйте ссылку [edit link] (http://stackoverflow.com/posts/32521668/edit), чтобы улучшите свой вопрос. – styvane
Пытался отредактировать заголовок, введение и вопрос, надеюсь, теперь это лучше ... – Do5
Кстати, в то же время, как обходной путь, я спрашиваю у пользователя, что глубоко он хочет искать. В противном случае также возможно создать 3 разных запроса, а затем проверить ответы позже. – Do5