community.mongodb.mongodb поиск – поиск информации из MongoDB
Примечание
Этот плагин поиска входит в коллекцию community.mongodb (версия 1.7.7).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install community.mongodb. Для использования этого плагина поиска необходимы дополнительные требования, см. Требования для получения подробностей.
Для использования в книге задач укажите: community.mongodb.mongodb.
Новое в community.mongodb 1.0.0
Описание
- Поиск ``MongoDB`` выполняет команду *find()* для заданной *коллекции* на заданном сервере *MongoDB*.
- Результат — список jsons, немного отличающийся от того, что возвращает PyMongo. В частности, *временные метки* преобразуются в целочисленные значения эпохи.
Требования
Ниже перечислены требования к локальному контрольному узлу, на котором выполняется этот поиск.
- pymongo >= 2.4 (библиотека python)
Параметры ключевых слов
Это описание параметров ключевых слов поиска. Это значения key1=value1, key2=value2 и так далее в следующих примерах: lookup('community.mongodb.mongodb', key1=value1, key2=value2, ...) и query('community.mongodb.mongodb', key1=value1, key2=value2, ...)
Параметр | Комментарии |
|---|---|
collection строка / обязательно | Имя коллекции, для которой будет выполнен запрос |
connect_string строка | Может быть любой допустимой строкой подключения к MongoDB, поддерживающей аутентификацию, реплицированные наборы и т. д. Дополнительная информация по адресу https://docs.mongodb.org/manual/reference/connection-string/ По умолчанию: |
database строка / обязательно | Имя базы данных, для которой будет выполнен запрос |
extra_connection_parameters словарь | Дополнительные параметры подключения, которые должны быть отправлены в pymongo.MongoClient Обратитесь к примеру, чтобы узнать, как подключиться к mongo с помощью сертификата SSL. Все возможные параметры приведены здесь: https://pymongo.readthedocs.io/en/stable/api/pymongo/mongo_client.html#pymongo.mongo_client.MongoClient По умолчанию: |
filter словарь | Критерии вывода По умолчанию: |
limit целое число | Количество результатов, которые должны быть показаны |
projection словарь | Поля, которые вы хотите получить По умолчанию: |
skip целое число | Количество результатов, которые должны быть пропущены |
sort список / элементы=список | Правила сортировки. Используйте строки См. пример для получения дополнительной информации. По умолчанию: |
Примечания
Примечание
- См. https://pymongo.readthedocs.io/en/stable/api/pymongo/collection.html#pymongo.collection.Collection.find для получения дополнительной информации.
Примеры
- hosts: localhost
gather_facts: false
vars:
mongodb_parameters:
#mandatory parameters
database: 'local'
collection: "startup_log"
#optional
connection_string: "mongodb://localhost/"
# connection_string: "mongodb://username:password@my.server.com:27017/"
# extra_connection_parameters: { "ssl" : True , "ssl_certfile": /etc/self_signed_certificate.pem" }
#optional query parameters, we accept any parameter from the normal mongodb query.
# filter: { "hostname": "u18" }
projection: { "pid": True , "_id" : False , "hostname" : True }
skip: 0
limit: 1
sort: [ [ "startTime" , "ASCENDING" ] , [ "age", "DESCENDING" ] ]
tasks:
- debug: msg="The PID from MongoDB is {{ lookup('mongodb', mongodb_parameters ).pid }}"
- debug: msg="The HostName from the MongoDB server is {{ lookup('mongodb', mongodb_parameters ).hostname }}"
- debug: msg="Mongo DB is stored at {{ lookup('mongodb', mongodb_parameters_inline )}}"
vars:
mongodb_parameters_inline:
database: 'local'
collection: "startup_log"
connection_string: "mongodb://localhost/"
limit: 1
projection: { "cmdline.storage": True }
# lookup syntax, does the same as below
- debug: msg="The hostname is {{ item.hostname }} and the pid is {{ item.pid }}"
loop: "{{ lookup('mongodb', mongodb_parameters, wantlist=True) }}"
# query syntax, does the same as above
- debug: msg="The hostname is {{ item.hostname }} and the pid is {{ item.pid }}"
loop: "{{ query('mongodb', mongodb_parameters) }}"
- name: "Raw output from the mongodb lookup (a json with pid and hostname )"
debug: msg="{{ lookup('mongodb', mongodb_parameters) }}"
- name: "Yet another mongodb query, now with the parameters on the task itself"
debug: msg="pid={{item.pid}} hostname={{item.hostname}} version={{ item.buildinfo.version }}"
with_mongodb:
- database: 'local'
collection: "startup_log"
connection_string: "mongodb://localhost/"
limit: 1
projection: { "pid": True , "hostname": True , "buildinfo.version": True }
# Please notice this specific query may result more than one result. This is expected
- name: "Shows the whole output from mongodb"
debug: msg="{{ item }}"
with_mongodb:
- database: 'local'
collection: "startup_log"
connection_string: "mongodb://localhost/"
Значение возврата
Ключ | Описание |
|---|---|
Значение возврата список / элементы=строка | список JSON с результатами запроса к MongoDB. Возвращено: успех |
Ссылки на коллекции
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/mongodb/mongodb_lookup.html