Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何将应用程序数据与MongoDB数据库同步?_Node.js_Mongodb_React Native_Mongoose_Asyncstorage - Fatal编程技术网

Node.js 如何将应用程序数据与MongoDB数据库同步?

Node.js 如何将应用程序数据与MongoDB数据库同步?,node.js,mongodb,react-native,mongoose,asyncstorage,Node.js,Mongodb,React Native,Mongoose,Asyncstorage,我在react本机应用程序的异步存储中有一个TODO数组,我想与我的MongoDB数据库同步。同步是指它应该做以下事情: 删除数据库中应用程序中不存在的旧任务 更新数据库中已存在但在应用程序中已编辑(任务标题/完成状态)的旧任务 添加在app中新添加但尚未保存在DB中的任务 我怎样才能做到这一点?我在后端使用express、node和mongoose。 如果我上面写的同步过程不正确,请纠正我,并告诉我如何解决这个问题。谢谢从这些小信息很难说您的数据模型有多复杂。如果应用程序的状态对应于mongo

我在react本机应用程序的异步存储中有一个TODO数组,我想与我的MongoDB数据库同步。同步是指它应该做以下事情:

  • 删除数据库中应用程序中不存在的旧任务
  • 更新数据库中已存在但在应用程序中已编辑(任务标题/完成状态)的旧任务
  • 添加在app中新添加但尚未保存在DB中的任务
  • 我怎样才能做到这一点?我在后端使用express、node和mongoose。

    如果我上面写的同步过程不正确,请纠正我,并告诉我如何解决这个问题。谢谢

    从这些小信息很难说您的数据模型有多复杂。如果应用程序的状态对应于mongo中的单个文档,则每次保存时都可以替换上一个文档。它是MongoDB数据库中的单个文档。我正在删除所有旧字段,并在每次同步时插入新数据。这是一个简单的待办事项应用程序。我在想也许这是正确的方法或者有更好的选择。简单是最好的。但是,这样做可能无法扩展到需要多个文档的大型应用程序,因此请在将来记住这一点。另一种方法是将应用程序状态发布到执行所有更新/升级逻辑的端点。它工作正常,目前只是一个演示,但我必须在更大的应用程序中实现类似的概念。删除所有内容并重新插入感觉不是正确的做法。你有什么建议吗?通常的方法是,更改应用程序状态的每个操作都会查询一个api,该api会在数据库中更新应用程序。然而,如果你的应用程序的一个特性是它的状态只在某个动作后保存,那么根据我的最后一条评论,你需要将它的整个状态发布到一个端点,将东西放到需要的地方。如果不知道你的数据是什么样子,我真的帮不了你。我建议首先规划数据库模式。