使用Java在MongoDB中收集集合。

时间:2017-06-26 07:32:54

标签: java mongodb heroku

  1. 我使用MongoDb存储集合
  2. 第一次插入集合时没有任何其他考虑
  3. 一旦数据在DataBase中初始化,应用程序的其余部分就会在内存中进行更改 - 而不是在DataBase中。
  4. 在某些条件下,我想在数据库中“upsert”内存集合。
  5. 我想将整个内存集合发送到DB,我需要“一些魔法”,它只会更新内存中已更改的集合数据。
  6. 有人能帮助我解决这个“我需要的魔力”吗?

    我正在使用Java,Heroku,mLab:MongoDB技术堆栈。

1 个答案:

答案 0 :(得分:1)

假设in memory数据库是一个集合,每个文档都有id,您可以使用insertAll MongoTemplate方法转储整个集合。它将按原样保留未更改的文档并更新其他文档。

upsert而言,您可以创建Query并使用upsert的{​​{1}}方法,例如:

MongoTemplate

这里是insertAllupsert方法的javadoc。

<强>更新

如果您使用的是核心mongo-java-driver,那么您可以查看thisthis个SO答案来执行相同的操作。