У меня есть ситуации, когда записи в Монго БД как:Поиск с динамическим именем поля в MongoDB
{
"_id" : "xxxx",
"_class" : "xxxx",
"orgId" : xxx,
"targetKeyToOrgIdMap" : {
"46784_56139542ecaa34c13ba9e314" : 46784,
"47530_562f1bc5fc1c1831d38d1900" : 47530,
"700004280_56c18369fc1cde1e2a017afc" : 700004280
},
}
я должен выяснить записи, где дочерние узлы targetKeyToOrgIdMap имеют определенный набор значений. Это означает, что я знаю, какая ценность будет в записи в «46784_56139542eca34c13ba9e314»: 46784 часть. И имя поля является переменным, его комбинацией значения и некоторой случайной строки.
В приведенном выше примере у меня есть 46784, и мне нужно найти все записи, которые имеют 46784 в соответствующем поле.
Можно ли каким-либо образом запустить какое-то регулярное выражение или что-то в этом роде или с помощью любого другого значения, в котором я получаю записи, которые имеют значение, которое мне нужно в дочерних узлах поля targetKeyToOrgIdMap.
Заранее спасибо
Невозможно использовать метод 'find()', возможно, с 'mapReduce'. Возможно, вам придется рассмотреть возможность изменения вашей схемы, чтобы сделать «targetKeyToOrgIdMap» массив объектов с ключевыми и значениями свойств, которые проще запросить: «targetKeyToOrgIdMap»: [{«id»: «46784_56139542eca34c13ba9e314», «value»: 46784} , { "id": "47530_562f1bc5fc1c1831d38d1900", "value": 47530}] ' – chridam
изменение схемы будет невозможно. Я должен, возможно, пропустить это или что-то в этом роде. Спасибо @chridam –