2017-06-26 83 views
0
  1. 我使用MongoDB的存儲
  2. 一旦數據在數據庫初始化各地採集的第一次插入,沒有任何其他考慮
  3. 集合,應用程序的其餘部分將集合中的變化在內存中 - 不在DataBase中。
  4. 在某些情況下,我想在DataBase中「插入」內存集合。
  5. 我想發送整個內存集合到數據庫,我需要「一些魔術」,它只會更新內存中已更改的集合的那些數據。

任何人都可以幫助我找到這個「一些魔法」嗎?使用Java在MongoDB中插入集合。

我正在使用Java,Heroku,mLab:MongoDB技術堆棧。

回答

1

假設in memory數據庫是一個集合,並且每個文檔都有該id,那麼可以使用insertAll方法MongoTemplate來轉儲整個集合。它將保持不變的文檔,並更新其他文檔。

至於upsert而言,你可以創建一個Query和使用的MongoTemplateupsert方法,例如:

Query query = new Query(Criteria.where("_id").is(my_id)); 
mongoTemplate.upsert(query, document, Document.class, "collection_name"); 

這裏是insertAllupsert方法的Javadoc。

更新

如果你正在使用的核心蒙戈 - Java的應用程序,那麼你可以看看thisthis SO答案做同樣的操作。