Проблема
У меня есть база данных записей recordingsDB
, отправленных из клиентского приложения, которое использует pouchDB. Каждая запись - это собственный документ. например,
{
"_id": "2019-10-20T04:51:22.744Z",
"_rev": "1-53e73be51ea76f96e3cfde2de1502439",
"locale": "en",
"_attachments": {
"recordings.webm": {
"content_type": "audio/webm; codecs=opus",
...
}
}
}
Клиентское приложение имеет одного пользователя clientUser
(так что любой, кто получает доступ к сайту, становится clientUser
). Пользователь клиента может поэтому писать в recordingsDB
, но также читать из recordingsDB
, что нежелательно, потому что они могут читать любые записи из recordingsDB
.
Я пошел по пути «только для записи» базы данных и наткнулся на этот ответ от 2011 года. Мне интересно, как это реализовать.
Идея
Итак, я считаю, что сработало бы, если бы мой recordingsDB
повторил бы все записи в masterRecordingsDB
, где clientUser
больше не является участником. После копирования каждого документа из recordingsDB
в masterRecordingsDB
он будет удален.
Настройка
Я настроил репликатор, который копирует содержимое из записи DB в masterRecordingsDB.
{
"_id": "recordings_to_master_recordings",
"_rev": "3-a6fa84dd89c2ec037353c17f65b4c765",
"continuous": true,
"source": {
"url": "http://localhost:5984/recordings",
"headers": {
"Authorization": "Basic YWRtaW46cGFzc3dvcmQ="
}
},
"target": {
"url": "http://localhost:5984/master_recordings",
"headers": {
"Authorization": "Basic YWRtaW46cGFzc3dvcmQ="
}
},
"user_ctx": {
"name": "admin",
"roles": [
"_admin"
]
},
"owner": "admin"
}
Как удалить элементы в записи DB после каждой успешной репликации?