#python #pandas #couchbase
Вопрос:
У меня есть ведро «А», с областью действия «В» и коллекцией «С». Как я могу получить все документы из этой коллекции из couchbase?
import pandas as pd
from couchbase_core.cluster import PasswordAuthenticator
from couchbase.cluster import Cluster, ClusterOptions, QueryOptions
cluster = Cluster('couchbase://localhost', ClusterOptions(PasswordAuthenticator('xxx', 'xxx')))
cb = cluster.bucket("A")
cb_coll = cb.scope("B").collection("C")
Как я могу извлечь все документы из этой коллекции » C » с помощью python и сохранить их в фрейме данных?
Ответ №1:
Если вы ищете что-то подобное select *
из коллекции, вам необходимо создать первичный индекс в коллекции.
CREATE PRIMARY INDEX ON `A`.B.C;
SELECT * FROM A.B.C;
Основной индекс может быть создан с помощью веб-интерфейса Couchbase.
Для выполнения этих операций с помощью Python SDK вы можете запускать запросы с помощью объекта кластера. Обратите внимание, что создание индекса является асинхронной операцией.
from couchbase.exceptions import QueryIndexAlreadyExistsException
# Create Primary Index for querying
try:
cluster.query("CREATE PRIMARY INDEX ON A.B.C")
except QueryIndexAlreadyExistsException:
print("Index already exists")
# Query all documents
result = cluster.query("SELECT * from A.B.C")
# Get all the documents
results = [row for row in result]
# Convert the results into a Pandas Dataframe
results_df = pd.DataFrame(results)
Комментарии:
1. Спасибо вам за ответ