Копирование идентификатора в значение JSON или XML базы данных KV не является хорошей идеей. Он будет дублировать информацию и может стать несинхронным c, если вы «клонируете» документ. То есть, если вы хотите вставить новый документ на основе ранее сохраненного документа, вам необходимо обновить поле document["uid"]
.
Проще говоря, вам не нужно хранить UID в значении, потому что он уже хранится в ключе.
Но в коде, когда вы получаете заданный объект, вы можете связать его с идентификатором. Чтобы вы могли обновить правильный документ записи.
В JavaScript вы получите следующее
function ref(uid) { /* retrieve the JSON document with the given UID */ }
function update(uid, object) { /* update the record UID with the JSON object OBJECT */ }
// let's say you know the identifier (UID) of a document, you can retrieve
// it with the `ref` function
let uid = 'P4X432'
let myDocument = ref(uid)
// update one field of the document
myDocument["website"] = "https://hyper.dev"
// now you need to save it, re-use the original identifier
update(uid, myDocument)
Так что в итоге вы можете получить JavaScript Объект или класс, который выглядит следующим образом:
myDatabaseRecord = {
"uid": "P4X432",
"document": {
"website": "https://hyper.dev", ...
}
}
Вот как это делают клиенты mongodb. Если я правильно помню, в nodejs клиентской библиотеке mongodb objectid
используйте специальный ключ $id
для описания идентификатора документа, например:
object = {
"$id": "P4X432",
"website": "https://hyper.dev",
...
}
Все, кроме $id
, будет сохранено в стоимости базы данных KV. Это приложение работает в той степени, в которой ему потребуется сделать частичную копию (!) Для создания документа JSON, который будет храниться в базе данных (примечание: в этом случае мутация невозможна), в результате вы получите меньше код исполнителя.
То, что находится в коде, отличается от того, что находится в базе данных. Важно помнить, что в коде необходимо отслеживать идентификатор документов.