欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MongoDB学习笔记

程序员文章站 2024-01-23 10:11:34
...

1.MongoDB目录结构

MongoDB由:
文档(document)、集合(collection)、数据库(database)这三部分组成的。
1MongoDB 的文档(document),相当于关系数据库中的一行记录。
2)多个文档组成一个集合(collection),相当于关系数据库的表。
3)多个集合(collection),逻辑上组织在一起,就是数据库(database)。
4)一个 MongoDB 实例支持多个数据库(database)。
 

MongoDB学习笔记

2.MongoDB安装使用

windows下

(1)将 C:\ProgramFiles\MongoDB\Server\3.2\bin 设置到环境变量 path 中。
(2)cmd启动服务 mongod --dbpath=d:\data,先创建一个data目录用于存放数据
(3)另开一个cmd,输入mongo连接,如果连接服务器,就mongo ip地址。
 
MongoDB学习笔记

 

3.MongoDB常用命令

use 数据库名称 选择和创建数据库
db.集合名称.insert(数据); 插入和查询文档
db.集合名称.find() 查询集合的语法格式:
db.集合名称.find( 条件 ) 按条件来查询
db.集合名称.update(条件,修改后的数据) 修改文档
db.集合名称.remove(条件) 删除文档
db.spit.count() 统计条数
db.集合名称.find( /模糊查询字符串/ ) 模糊查询
大于 小于 不等于  
db.集合名称.find({ "field" : { $gt: value }}) // 大于: field > value
db.集合名称.find({ "field" : { $lt: value }}) // 小于: field < value

db.集合名称.find({ "field" : { $gte: value }})

// 大于等于: field >= value
db.集合名称.find({ "field" : { $lte: value }}) // 小于等于: field <= value
db.集合名称.find({ "field" : { $ne: value }}) // 不等于: field != value
包含$in与不包含$nin  
db.spit.find({userid:{$in:["1013","1014"]}}) db.spit.find({userid:{$nin:["1013","1014"]}})
条件连接$and$or  
$and:[ { },{ },{ } ]
$or:[ { },{ },{ } ]
列值增长$inc  
db.spit.update({_id:"2"},{$inc:{visits:NumberInt(1)}} )  

 

4.Java连接MongoDB

1)创建工程 mongoDemo, 引入依赖
<dependency>
     <groupId>org.mongodb</groupId> 
    <artifactId>mongodb-driver</artifactId> 
    <version>3.6.3</version>
 </dependency>

 

2)创建测试类
public class MongoDBDemo {

    public static void main(String[] args) {

        //1.连接mongodb
        MongoClient client = new MongoClient("localhost", 27017);
        //2.获取数据库(database)这
        MongoDatabase spitdb = client.getDatabase("spit");
//        3.集合(collection)
        MongoCollection<Document> spit = spitdb.getCollection("spit");

//        4.文档
//        4.1查询所有
        FindIterable<Document> documents = spit.find();
//        4.2查询条件大于等于30      db.split.find( {"visits": {$gte:NumberInt(30)} }  )
//        BasicDBObject  bson = new BasicDBObject("visits", new BasicDBObject("$gte",30));
//        FindIterable<Document> documents = spit.find(bson);
//        4.3查询大于120并且小于1223的,   db.spit.find( {$and: [{"visits": {$gt:NumberInt(120) }}, {"visits":{$lte:NumberInt(1223)}} ] })
//        List<BasicDBObject> list = new ArrayList<BasicDBObject>();
//        list.add(new BasicDBObject("visits", new BasicDBObject("$gt", 120)));
//        list.add(new BasicDBObject("visits", new BasicDBObject("$lte", 1223)));
//        BasicDBObject bson = new BasicDBObject("$and", list);
//        FindIterable<Document> documents = spit.find(bson);
//        4.4插入数据
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("_id", "5");
        map.put("visits", "10086");
        Document document = new Document(map);
        spit.insertOne(document);

        for (Document document2 : documents) {
            System.out.println(document2.toString());
        }

        //5.关闭连接
        client.close();
    }

}

 

5.SpringDataMongoDB

1)pom.xml 依赖导入

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>
2)创建 application.yml
server:
  port: 9006
spring:
  application:
    name: tensquare-spit
  data:
    mongodb:
      host: 127.0.0.1
      port: 27017
      database: spit

3)项目应用

    @Autowired
    private  MongoTemplate mongoTemplate;

    /**
     * 高效率
     *
     * @param spitid
     */
    public void thumbup(String spitid) {
//db.spit.update({"_id":"1198220881907929088"},{$inc:{"thumbup":NumberInt(1)}})
       //1.构建查询对象
        Query query = new Query();
        query.addCriteria(Criteria.where("_id").is(spitid));
        //2.构建更新对象
        Update update = new Update();
        update.inc("thumbup",1);

        //3.mongoTemplate
        mongoTemplate.updateFirst(query,update,"spit");
    }

    /**
     * 取消点赞
     * @param spitid
     */
    public void cancelThumbup(String spitid) {
        //1.构建查询对象
        Query query = new Query();
        query.addCriteria(Criteria.where("_id").is(spitid));
        //2.构建更新对象
        Update update = new Update();
        update.inc("thumbup",-1);

        //3.mongoTemplate
        mongoTemplate.updateFirst(query,update,"spit");
    }