springboot-mongodb 新增、刪除
阿新 • • 發佈:2019-02-18
https://blog.csdn.net/congcong68/article/details/47064959
spring Data MongoDB 的MongoTemplate提供了兩種儲存文件方式,分別是save和insert方法,這兩種的區別:
(1)save :我們在新增文件時,如果有一個相同_ID的文件時,會覆蓋原來的。
(2)insert:我們在新增文件時,如果有一個相同的_ID時,就會新增失敗。
1.接下來我們分別介紹的兩種方式的具體語法。
(1)Save方式
方法:
1)void save (Object objectToSave) 儲存文件到預設的集合。
2)void save(Object objectToSave, String collectionName) 對指定的集合進行儲存。
(2) Insert方式
方法:
1)void insert(Object objectToSave) 儲存文件到預設的集合。
2)void insertAll(Object objectsToSave) 批量新增到預設的集合。
3)void insert(Object objectToSave, String collectionName) 對指定的集合進行儲存。
(1)save :我們在新增文件時,如果有一個相同_ID的文件時,會覆蓋原來的。
(2)insert:我們在新增文件時,如果有一個相同的_ID時,就會新增失敗。
(3)MongoDB提供了insertAll批量新增,可以一次性插入一個列表,效率比較高,save則需要一個一個的插入文件,效率比較低。insert:
public void insert(User object,String collectionName) {
mongoTemplate.insert(object, collectionName);
}
query:
@Override public User findOne(Map<String,Object> params,String collectionName) { return mongoTemplate.findOne(new Query(Criteria.where("id").is(params.get("id"))), User.class,collectionName); } @Override public List<User> findAll(Map<String,Object> params,String collectionName) { List<User> result = mongoTemplate.find(new Query(Criteria.where("age").lt(params.get("maxAge"))), User.class,collectionName); return result; }
update:
@Override
public void updateDemo(DemoEntity demoEntity) {
Query query = new Query(Criteria.where("id").is(demoEntity.getId()));
Update update = new Update();
update.set("title", demoEntity.getTitle());
update.set("description", demoEntity.getDescription());
update.set("by", demoEntity.getBy());
update.set("url", demoEntity.getUrl());
mongoTemplate.updateFirst(query, update, DemoEntity.class);
}
刪除
mongoTemplate.remove(new Query(Criteria.where("id").is(params.get("id"))),User.class,collectionName);
刪除集合
dropCollection(String collectionName);