python mysqlx.Result.get_autoincrement_value()不';行不通
我试图在我的python项目(python 3.8)中使用MySQL 8的文档存储。MySQL连接器python的版本是8.0.20。根据和,在将文档添加到数据库中后,我尝试获取自动增量文档ID。每次执行后,数据都会成功插入数据库,但在调用get_autoincrement_value()后会返回'-1' 我的代码如下所示:python mysqlx.Result.get_autoincrement_value()不';行不通,python,mysql,python-3.x,mysql-8.0,document-storage,Python,Mysql,Python 3.x,Mysql 8.0,Document Storage,我试图在我的python项目(python 3.8)中使用MySQL 8的文档存储。MySQL连接器python的版本是8.0.20。根据和,在将文档添加到数据库中后,我尝试获取自动增量文档ID。每次执行后,数据都会成功插入数据库,但在调用get_autoincrement_value()后会返回'-1' 我的代码如下所示: try: schema = session.get_schema('my_schema') collection = schema.
try:
schema = session.get_schema('my_schema')
collection = schema.get_collection('my_collection')
topic_dict = protobuf_to_dict(topic)
doc_id = collection.add(topic_dict).execute().get_autoincrement_value()
logger.debug('doc_id: {}', doc_id)
return doc_id
except Exception as e:
logger.exception("failed to add topic to db, topic: {}, err: {}", topic, e)
我的用法有什么问题吗?谢谢大家~您似乎对自动生成的文档id感兴趣。如果是这种情况,则应改为使用: 在本例中,该方法返回在
add()
操作范围内生成的所有ID的列表
文档可能不够清晰,但是get\u auto\u increment\u value()。它在NoSQL集合的范围内没有任何意义,因为集合最终只是一个创建的表,如(压缩版本):
这意味着没有任何东西可以“自动递增”
免责声明:我是MySQL X DevAPI Connector for Node.js的首席开发人员非常感谢您的帮助~非常高兴从MySQL connectors的核心开发人员之一那里得到答案~:)是的,我正在尝试提取文档ID以供其他用途。这是我第一次尝试MySQL文档存储。我会尽量多了解这个用法,以避免这些愚蠢的问题。我已经试过你的建议了,而且效果很好~:)比你还好~
doc_id = collection.add(topic_dict).execute().get_generated_ids()[0]
CREATE TABLE collection (
`doc` json DEFAULT NULL,
`_id` varbinary(32),
PRIMARY KEY (`_id`)
)