Java操作MongoDB

2022-05-13 11:19:02 浏览数 (1)

Java操作MongoDB 入门

mongodb-driver是mongo官方推出的java连接mongoDB的驱动包,相当于JDBC驱动。 我们通过一个入门的案例来了解mongodb-driver的基本使用

传统查询

查询全部记录

(1)创建工程 mongoDemo, 引入依赖
代码语言:javascript复制
<dependencies>
 <dependency>
 <groupId>org.mongodb</groupId> 
<artifactId>mongodb‐driver</artifactId>
 <version>3.6.3</version>
 </dependency> 
</dependencies>
(2)创建测试类
代码语言:javascript复制
/*** MongoDb入门小demo */
public class MongoDemo { 
public static void main(String[] args) {
  MongoClient client=new MongoClient("192.168.184.134");//创建连接 
  MongoDatabase spitdb = client.getDatabase("spitdb");//打开数据库 
  MongoCollection<Document> spit = spitdb.getCollection("spit");// 获取集合 
  FindIterable<Document> documents = spit.find();//查询记录获取文档集 合 
  for(Document document:documents){ 
      System.out.println("内容:"  document.getString("content")); 
      System.out.println("用户ID:" document.getString("userid")); 
      System.out.println("浏览量:" document.getInteger("visits")); 
}

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

条件查询

BasicDBObject对象:表示一个具体的记录,BasicDBObject实现了DBObject,是key- value的数据结构,用起来和HashMap是基本一致的。

(1)查询userid为1013的记录
代码语言:javascript复制
public class MongoDemo1 {
    public static void main(String[] args) {
        MongoClient client = new MongoClient("192.168.184.134");//创建连接 
        MongoDatabase spitdb = client.getDatabase("spitdb");//打开数据库
        MongoCollection<Document> spit = spitdb.getCollection("spit");// 获取集合 
        BasicDBObject bson = new BasicDBObject("userid", "1013");// 构建查询 条件 
        FindIterable<Document> documents = spit.find(bson);//查询记录获取结 果集合
        for (Document document : documents) {
            System.out.println("内容:"   document.getString("content"));
            System.out.println("用户ID:"   document.getString("userid"));
            System.out.println("浏览量:"   document.getInteger("visits"));
        }
        client.close();//关闭连接
    }
}  }  }
(2)查询浏览量大于1000的记录
代码语言:javascript复制
public class MongoDemo2 {
    public static void main(String[] args) {
        MongoClient client = new MongoClient("192.168.184.134");//创建连接 
        
        MongoDatabase spitdb = client.getDatabase("spitdb");//打开数据库 
        
        MongoCollection<Document> spit = spitdb.getCollection("spit");// 获取集合
        
        BasicDBObject bson = new BasicDBObject("visits", new BasicDBObject("$gt", 1000));
      // 构建查询条件 等同于find({visits:{$gt:1000}})      
        FindIterable<Document> documents = spit.find(bson);//查询记录获取结果集合 
        
        for (Document document : documents) { // System.out.println("内容:"  document.getString("content"));
           System.out.println("用户ID:" document.getString("userid"));
           System.out.println("浏览量:" document.getInteger("visits"));
        
        }
        
        client.close();//关闭连接 
    
    }
}
(3) 插入数据
代码语言:javascript复制
public class MongoDemo3 {
 public static void main(String[] args) { 
       MongoClient client=new MongoClient("192.168.184.134");//创建连接
       MongoDatabase spitdb = client.getDatabase("spitdb");//打开数据库     
       MongoCollection<Document> spit = spitdb.getCollection("spit");// 得到集合(类似于数据的表)   
       Map<String,Object> map=new HashMap(); map.put("content","我要吐槽"); 
          map.put("userid","9999"); 
          map.put("visits",123); 
          map.put("publishtime",new Date()); 
      Document document=new Document(map); 
      //MongoDB插入的文档里有个构造函数可以传一个map构成一个Doucument
      spit.insertOne(document);//插入数据
      client.close();
 }
 }

SpringDataMongoDB SpringDataJps操作MongoDB

SpringDataMongoDB SpringData家族成员之一,用于操作MongoDb的持久层框架,封装了底层的mongodb- driver。

简单操作,不包含全部操作和全部代码,如果有想更深入了解的可以私信问我 (1)pom.xml引入依赖

代码语言:javascript复制
<dependency>
 <groupId>org.springframework.boot</groupId> 
<artifactId>spring‐boot‐starter‐data‐mongodb</artifactId>
 </dependency> 
<dependency>
 <groupId>com.tensquare</groupId>
 <artifactId>tensquare_common</artifactId> 
<version>1.0‐SNAPSHOT</version> 
</dependency>

(2)创建application.yml

代码语言:javascript复制
server: port: 9006 
spring: 
  application:
     name: tensquare‐spit #指定服务名
  data:
     mongodb: 
        host: 192.168.184.134
        database: spitdb

0 人点赞