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简单使用的主要内容,如果未能解决你的问题,请参考以下文章

教你THINKPHP6.0 快速安装使用MongoDB

MongoDB-1 入门

MongoDB简单使用

MongoDB简单使用

MongoDB简单使用

教你THINKPHP6.0 快速安装使用MongoDB