MongoDB简单使用
Posted 飞廉灬少将
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB简单使用相关的知识,希望对你有一定的参考价值。
MongoDB简介
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
MongoDB服务端可运行在Linux、Windows平台,支持32位和64位应用,默认端口为27017。
SpirngBoot集成MongoDB
SpringBoot项目直接引入,Maven会自动根据springboot版本引入对应版本的jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
MongoDB使用
提供一个自己使用的MongoDBUtil
@Autowired
MongoTemplate mongoTemplate;
/**
* 插入JSON字符串
* @param
* @return void
* @exception
* @date 2020/04/29 20:18
*/
public void InsertJSON(String table, String json)
log.info("table is :--json is :", table, json);
mongoTemplate.insert(json, table);
/**
* 删除指定表的JSON字符串
* @param
* @return void
* @exception
* @date 2020/04/29 20:18
*/
public void deleteJSON(String table, String key)
mongoTemplate.remove(new Query(Criteria.where("id").is(key)), table);
/**
* <p>修改指定表的JSON字符串</p>
* <p>这里进行更细微化的操作</>
* @param table
*/
public void deleteJSON(String table, String key, String c)
Query query = new Query(Criteria.where("id").is(key));
Update update = new Update().addToSet(key, mongoTemplate);
mongoTemplate.updateFirst(query, update, table);
/**
* 查询指定表的字符串
* @param
* @return List<JSONObject>
* @exception
* @date 2020/04/29 20:18
*/
public List<JSONObject> getJSONById(String table, String key)
return mongoTemplate.find(new Query(Criteria.where("id").is(key)), JSONObject.class, table);
/**
* 查询指定表的所有数据
* @param
* @return List<JSONObject>
* @exception
* @date 2020/04/29 20:23
*/
public List<JSONObject> getJSONList(String table)
return mongoTemplate.find(new Query(), JSONObject.class, table);
/**
* 查询指定表的所有数据
* @param
* @return List<JSONObject>
* @exception
* @date 2020/04/29 20:24
*/
public List<JSONObject> getJSONListByFilter(String table, Map<String, Object> filterMap)
List<Criteria> list = new ArrayList<Criteria>();
filterMap.keySet().forEach(key ->
log.info("key is :--value is:", key, filterMap.get(key));
list.add(Criteria.where(key).is(filterMap.get(key)));
);
// 查看源码可知 andOperator 可接受一个不限长度的
return mongoTemplate.find(new Query(new Criteria().andOperator(list.toArray(new Criteria[0]))), JSONObject.class, table);
/**
* 查询指定表的所有数据(指定返回长度)
* @param
* @return List<JSONObject>
* @exception
* @date 2020/04/29 20:24
*/
public List<JSONObject> getJSONPageListByFilter(String table, Map<String, Object> filterMap,int limit)
List<Criteria> list = new ArrayList<Criteria>();
filterMap.keySet().forEach(key ->
log.info("key is :--value is:", key, filterMap.get(key));
list.add(Criteria.where(key).is(filterMap.get(key)));
);
// 查看源码可知 andOperator 可接受一个不限长度的
return mongoTemplate.find(new Query(new Criteria().andOperator(list.toArray(new Criteria[0]))).limit(limit), JSONObject.class, table);
/**
* 查询指定表的字符串
* @param
* @return List<DBObject>
* @exception
* @date 2020/04/29 20:24
*/
public List<DBObject> getJSONByIdDBO(String table, String key)
return mongoTemplate.find(new Query(Criteria.where("id").is(key)), DBObject.class, table);
/**
* 查询指定表的所有数据
* @param
* @return List<DBObject>
* @exception
* @date 2020/04/29 20:24
*/
public List<DBObject> getJSONListDBO(String table)
return mongoTemplate.find(new Query(), DBObject.class, table);
/**
* 查询指定表的所有数据
* @param
* @return List<DBObject>
* @exception
* @date 2020/04/29 20:24
*/
public List<DBObject> getJSONListByFilterDBO(String table, Map<String, Object> filterMap)
List<Criteria> list = new ArrayList<Criteria>();
filterMap.keySet().forEach(key ->
log.info("key is :--value is:", key, filterMap.get(key));
list.add(Criteria.where(key).is(filterMap.get(key)));
);
// 查看源码可知 andOperator 可接受一个不限长度的
return mongoTemplate.find(new Query(new Criteria().andOperator(list.toArray(new Criteria[0]))), DBObject.class, table);
以上是常用的MongoDB用法,当然你也可以自己写,其实上面的util里面已含盖了MongoDB写法,倒推一下基本就能明白
以上是关于MongoDB简单使用的主要内容,如果未能解决你的问题,请参考以下文章