Ninazu
@Ninazu

Как организовать поиск по вложенным документам с неизвестный промежуточным узлом?

Есть структура:
{
	"A" : {
		"B1" : {
			"C" : {
				"K1" : {
					"x" : NumberLong(12),
					"y" : NumberLong(13)
				}
			}
		},
		"B2" : {
			"C" : {
				"K1" : {
					"x" : NumberLong(35),
					"y" : NumberLong(45)
				},
				"K2" : {
					"x" : NumberLong(1),
					"y" : NumberLong(0)
				}
			}
		}
	}
}


Есть задача:
Выбрать все K1(переменная которая передается) из всех Bn

Пробовал сам но есть проблемы:
1. Как указать не явно B1, а все Bn
2. Как в результат category запихнуть само название ключа Bn

.aggregate([
    {$match:{
        "A.B1.C.K1":{
            $exists:true
        }
    }},
    {$project:{
        "result":"A.B1.C.K1",
        "category":"B1",
        "_id":false
    }}
]);
  • Вопрос задан
  • 151 просмотр
Пригласить эксперта
Ответы на вопрос 1
@lega
Видимо у вас не поиск, а перебор. Можете использовать map-reduce, можете получить все документы и перебрать вручную.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы