У меня возникла проблема при написании запроса для возврата тройного вложенного значения из документа.Документы, которые я использую, структурированы следующим образом:
{
"areaname": "name1",
"places": [
{
"placename": "place1",
"objects": [
{
"objname": "obj1",
"tags": [
"tag1",
"tag2"
]
},
{
"objname": "obj2",
"tags": [
"tag6",
"tag7"
]
}
]
},
{
"placename": "place2",
"objects": [
{
"objname": "obj45",
"tags": [
"tag46",
"tag34"
]
},
{
"objname": "obj77",
"tags": [
"tag56",
"tag11"
]
}
]
}
]
}
На самом деле это довольно просто, но я не могу найти решение простого запроса, например: "вернуть имя объекта, содержащего тег1 внутри ихtag "
" Так что для данного документа, если я использую "tag1" в качестве параметра, ожидается, что запрос возвратит "obj1". Он должен дать мне тот же результат, если я использую "tag2" в качестве параметра Otherпример: используя «tag56», он должен возвращать только «obj77»
Сейчас у меня нет проблем с возвратом всего документа с использованием точечного обозначения или поля верхнего уровня, такого как areaname или других
db.users.find( {"places.objects.tags":"tag1"}, { areaname: 1, _id:0 } )
Это вообще возможно?