java操作Mongo

  • 不足之处欢迎留言

1、文档型数据库​

  1. MongoDB 是一个跨平台的,面向文档的数据库,是当前 NoSQL 数据库产品中最热 门 的一种。它介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最 像关 系数据库的产品。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以 存 储比较复杂的数据类型。
  2. MongoDB 的官方网站地址:http://www.mongodb.org/
  3. MongoDB与MySQL数据库逻辑结构概念的对比
MongoDB 关系型数据库Mysql
数据库 数据库
集合(collections) 表(table)
文档(document) 行(row)


 

 

 

 

2、mongo服务启动和停止

2.1、启动

前提:配置好环境变量path

  • 任务管理器:启动mongo服务
  • cmd:直接输入mongo或mongod --dbpath data所在目录

2.2、停止

  • 任务管理器:停止mongo服务
  • cmd:
    • 1)切换到admin权限,db.shutdownServer()
    • 2)查看进程,使用kill命令,不能使用kill -9

3、常用命令

  • 模糊查询:dp.集合名.find({字段:/str/})
  • 以str开头:db.集合名.find({字段:/^str/})
  • 修改某条记录:db.集合名.update(条件,修改后的数据),$set修改器

db.spit.update({userdi:“1”},{$set:{name:“小明”}})

  • 包含:$in:[]
  • 不包含:$nin:[]
  • 条件连接:$and[条件1,条件2]、$or[条件1,条件2]
  • BasicDBObject.put():表示一个具体的记录。用来构建查询条件。相当于map.
  • BasicDBList.add():可以存放多个BasicDBObject条件

4、java连接操作mongo

4.1、核心依赖

  • mongodb-driver是mongo官方推出的java连接mongoDB的驱动包,相当于JDBC驱动​​​​​​
  • java监控mongodb更新内容 java执行mongodb命令_java

4.2、操作步骤

  • 首先确保mongo中有数据库并有要操作的表(本例:spitdb库,spit表)

(1)建立连接

  • MongoClient mongoClient = new MongoClient("localhost");

(2)打开数据库

  • MongoDatabase spitdb = mongoClient.getDatabase("spitdb");

(3)获取某个集合(表)

  • MongoCollection<Document> spit = spitdb.getCollection("spit");

(4)查询获取集合中的文档集合(表中数据记录)

  • FindIterable<Document> documents = spit.find();
  • FindIterable<Document> documents = spit.find(条件Bson格式);

(5)关闭连接

  • mongoClient.close();

4.3、条件查询

(1)构建查询条件

  • 【例1-----userid为1013的】
  • BasicDBObject bson = new BasicDBObject("userid","1013");
  • 【例2-----浏览量大于1000】
  • BasicDBObject bson = new BasicDBObject("visits",new BasicDBObject("$gt",1000));

(2)查询集合中符合条件的文档集合(表中数据记录)

  • FindIterable<Document> documents = spit.find(bson);

(3)BasicDBObject:表示一个具体的记录。用来构建查询条件。相当于map.

(4)BasicDBList:可以存放多个BasicDBObject条件。

java监控mongodb更新内容 java执行mongodb命令_数据库_02

4.4、插入数据

(1)将数据转换为mongo中对应的document记录

  • Document document = new Document(map);

(2)将document记录插入表中

  • spit.insertOne(document);

(3)关闭连接

java监控mongodb更新内容 java执行mongodb命令_数据库_03

5、总洁

  • 遇到的异常

bug1:Exception in monitor thread while connecting to server 192.168.1.160:27017
com.mongodb.MongoSocketOpenException: Exception opening socket
原因:本地测试ip只能是localhost或者127.0.0.1,192.168.1.160不行。

bug2:java输出Mongo中文乱码或为问号
原因:BSON只支持UTF8编码。