我正在关注Link以整合cloudant no sql-db。
有创建DB,查找全部,计数,搜索,更新的方法。现在我想在我的一个DB doc文件中更新一个键值。我怎么能实现这一目标。文档显示如
updateDoc(name,doc) 参数: name - 数据库名称 docID - 要更新的文档
但是当我传递我的数据库名称和文档ID时,它已经创建的投掷数据库无法创建数据库。但我想更新doc。所以任何人都可以帮助我。
以下是may table' employee_table'的文档之一。供参考 -
{
"_id": "0b6459f8d368db408140ddc09bb30d19",
"_rev": "1-6fe6413eef59d0b9c5ab5344dc642bb1",
"Reporting_Manager": "sdasd",
"Designation": "asdasd",
"Access_Level": 2,
"Employee_ID": 123123,
"Employee_Name": "Suhas",
"Project_Name": "asdasd",
"Password": "asda",
"Location": "asdasd",
"Project_Manager": "asdas"
}
所以我想更新我的表' employee_table'上面的doc文件中的一些值。那么我必须传递什么参数进行更新。
答案 0 :(得分:0)
首先,没有sql世界中没有名为table的概念。
第二,首先要更新文档,你需要根据文档的任何输入字段获取文档。您还可以使用Employee_ID或其他一些文档字段。然后使用database.get_query_result
db_name = 'Employee'
database = client.create_database(db_name,throw_on_exists=False)
EmployeeIDValue = '123123'
#here throw_on_exists=False meaning dont throw error if DB already present
def updateDoc (database, EmployeeIDValue):
results = database.get_query_result(
selector= { 'Employee_ID': {'$eq': EmployeeIDValue} }, )
for result in results:
my_doc_id = result["_id"]
my_doc = database[my_doc_id] #===> this give you your document.
'''Now you can do update'''
my_doc['Employee_Name'] = 'XYZ'
my_doc.save() ====> this command updates current document