7.1 Коллекции как реляционные таблицы
Приложения, которые стремятся хранить стандартные столбцы SQL вместе с документами, могут преобразовать коллекцию в таблицу. В этом случае коллекцию можно получить как объект Table с помощью функции Schema.getCollectionAsTable(). С этого момента она обрабатывается как обычная таблица. Значения документов могут быть доступны в операциях SQL CRUD с использованием следующего синтаксиса:
doc->'$.field'
doc->'$.field' используется для доступа к полям документа верхнего уровня. Также можно указывать более сложные пути.
doc->'$.some.field.like[3].this'
После того, как коллекция была получена как таблица с помощью функции Schema.getCollectionAsTable(), можно использовать все операции SQL CRUD. Используя синтаксис для доступа к документам, вы можете выбирать данные из документов коллекции и дополнительных столбцов SQL.
Следующий пример демонстрирует, как вставить строку JSON-документа в поле doc.
# Get the customers collection as a table
customers = db.get_collection_as_table('customers')
customers.insert('doc').values('{"_id":"001", "name": "Ana", "last_name": "Silva"}').execute()
# Now do a find operation to retrieve the inserted document
result = customers.select(["doc->'$.name'", "doc->'$.last_name'"]).where("doc->'$._id' = '001'").execute()
record = result.fetch_one()
print("Name : %s\n" % record[0])
print("Last Name : %s\n" % record[1])
© 2025 Oracle
Licensed under the GPLv2 License.