Извлеките документ из коллекции couchbase с помощью python

#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. Спасибо вам за ответ