我收集了一些文件。有时我需要将某些文档移动到另一个集合(也称为存档),并且我还需要为其添加存档时间
。现在我在两个查询中执行此操作,但希望减少到一个。
由于缺乏NoSQL经验,我很难做出任何假设,所以我寻求帮助。
query = f"""INSERT INTO bucket.scope.second_collection (KEY key_id, VALUE document)
SELECT META(doc).id AS key_id, doc AS document
FROM bucket.scope.first_collection AS doc
WHERE id = {};"""
cluster.query(query, QueryOptions(positional_parameters=[]))
time = datetime.now(tz)
query = f"""UPDATE bucket.scope.second_collection
SET date_of_moving = "{time}"
WHERE id = "{}";"""
cluster.query(query, QueryOptions(positional_parameters=[]))
最佳答案
您可以使用OBJECT_ADD()
向现有 JSON 对象添加其他字段。
我不是 Python 开发人员,所以如果我遇到一些语法错误,请原谅,但这里有一个 OBJECT_ADD
的示例:
query = f"""INSERT INTO bucket.scope.second_collection (KEY key_id, VALUE document)
SELECT META(doc).id AS key_id, OBJECT_ADD(doc, ""date_of_moving"", {time}) AS document
FROM bucket.scope.first_collection AS doc
WHERE id = {};"""
关于python - 当我在 couchbase 集合之间移动文档时,如何添加移动时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70978159/