сохранение данных на mongodb с постоянной историей, чтобы можно было отменить повтор и отослать конкретный экземпляр во внешний интерфейс - PullRequest
0 голосов
/ 21 сентября 2019

Я пытаюсь создать систему многопользовательского списка задач, в которой каждый пользователь может отменить задачу (создать, обновить, удалить) другим пользователем, поэтому мне нужно использовать mongodb, чтобы я мог сохранять прошлые изменения в последовательном порядкевносимых изменений.

Пожалуйста, помогите мне, как добиться этой функции, в MEAN.

при нажатии отмены, БД должна извлечь данные, сделанные в прошлом, и вернуть текущее состояниеданные.

my shema
const todoSchema=new Schema({
    todoId:{
        type:String,
        default:'',
        required:true,
    },
    todoBody:{
        type:String,
        default:'',
    },
    contributors:{
        type:[],
        required:true,
    },
    type:{
        type:String,
        default:'child',    
    },
    time:{
        type:time,
        default:'',
    },
    childNodes:{
        type:[Schema.Types.ObjectId],
        ref:'Todo',
    }

})

module.exports = mongoose.model('Todo', todoSchema);

Я думал о том, чтобы поставить видимый флаг на схеме, но при этом пользователь не будет выбирать одну задачу и делать create-undo.и при этом он не будет синхронизирован по одному шагу за раз, отмена будет происходить во всей коллекции.

Другой способ - создать другую таблицу / схему для хранения изменений, сделанных с помощью (время или номер версии) и objectIdизменяющихся задач.но я не могу понять, как функция будет работать с n количеством отмен.таким образом, каждый раз, когда я отменяю, якобы создается новая запись с избыточными данными.

Я также читаю некоторые блоги, чтобы сохранить используемые команды, и затем выполняю в обратном порядке, возможно ли это в mongoDB каксоздание и удаление могут вызвать проблемы, может быть.

или есть какая-либо библиотека для решения этой проблемы.

...