Всем привет. Кто может подсказать по словарю mongodb. В коллекции есть два поля _id и name. В _id хранится int (NumberInt). Соответственно в настройках словаря указано:
<structure>
<key>
<attribute>
<name>_id</name>
<type>Int32</type>
</attribute>
</key>
<attribute>
<name>name</name>
<type>String</type>
<null_value></null_value>
</attribute>
</structure>
Но при выполнении запроса:
SELECT dictGetString('my_dict', 'name', tuple(toInt32(1)))
Возвращается пустой рез-т, хотя по этому _Id есть данные.
В логах ошибок нет, как и в таблице dictionaries.
Версия КХ: 18.14.18
Если вдруг кому понадобится, сам разобрался. Если в монге используется user и password то этот пользователь должен быть заведен именно в той БД к который вы пытаетесь подключится. Т.е. если БД словаря "db1" а authenticationDatabase - "admin". То подключения не будет. И что самое интересное нигде об этом не будет ошибки, запрос просто будет пустой. Логи пустые.
Было бы неплохо, если бы эту тонкость отразили в документации или в настройки подключения словаря добавят БД аутентификации.