Мне нужно выполнить поиск внутри элемента карты с определенным значением в mongodb.
У меня есть этот элемент в базе данных:
{
"_id": ObjectId("52950e93c4aad399cff0d9f9"),
"_class": "com.company.model.customer.DbCustomer",
"version": NumberLong(0),
"channels": {
"adea3d4e-2a73-4f3e-8a89-a336d6132909": {
"value": "[email protected]",
"alias": "email1",
"deliveryChannel": "EMAIL",
"status": "GOOD",
"_class": "com.company.model.customer.CustomerEmail"
}
}
}
Где "adea3d4e-2a73-4f3e-8a89-a336d6132909" является ключом карты каналов.
Что я хочу найти - это канал с определенным значением.
Если «каналы» массиву запрос будет таким образом:
{ "channels" :
{ "$elemMatch" : { "value" : "[email protected]" } }
}
Но, как каналы представляет собой карту, я не могу использовать этот подход.
Можно ли осуществлять поиск внутри карты так же, как и в массиве?
Обратите внимание, что я хочу использовать один запрос, по соображениям безопасности я не могу использовать функцию сокращения карты в моей базе данных.
Заранее спасибо.
Это часто задает. Вы не можете запросить ключ. – WiredPrairie