mongo数据库
MongoDB 是一个基于分布式文件存储的NoSQL(Not Only SQL ),)非关系型数据库,由C++语言编写,运行稳定,性能高,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案
MongoDB特点
模式自由 :可以把不同结构的文档存储在同一个数据库里
面向集合的存储:适合存储 JSON风格文件的形式
完整的索引支持:对任何属性可索引
丰富的查询:支持丰富的查询表达方式,查询指令使用JSON形式的标记,可轻易查询文档中的内嵌的对象及数组
高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)
MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成
MongoDB文档类似于JSON对象,字段值可以包含其他文档、数组、文档数组
安装和创建数据库
下载地址
我这里选中的是4.02(current release)、window 64-bit x64 、zip(解压即可用)
注:版本号带有"rc",意思是预发布版本,"rc2"就是预发布第二版
创建数据、日志、配置文件
//建议的结构
mongodb\data\conf\mongod.conf
mongodb\data\db
mongodb\data\log\mongo.log
在mongod.conf中写入如下内容
#数据库路径
dbpath=.....\data\db
#日志输出文件路径
logpath=.....\data\log\mongo.log
#错误日志采用追加模式
logappend=true
#启用日志文件,默认启用
journal=true
#这个选项可以过滤掉一些无用的日志
quiet=true
#端口号 默认为27017
port=27017
注意路径要成绝对路径,补全logpath和dbpath
安装服务
将路径切换到mongod安装目录的bin下,执行命令,使用认证方式安装服务
mongod -auth --config D:\mongodb\mongo.cfg -install
使用mongo.exe进入mongodb的命令行管理
>use admin
switched to db admin
db.createUser({user: "admin",pwd: "password",roles: [ { role: "root", db: "admin" } ]});
exit;
进入mongo,不输入账户密码
>show dbs;
#什么也不会输出,因为还没有账户验证
>db.auth('admin','pwd');
# 0代表失败,1代表成功
# 接着手腕 show dbs 就可以查看到了
# 也可以登录的时候,就验证
mongo -u admin -p pwd --authenticationDatabase admin
创建一个数据库mydb和一个管理它的用户(上一步已经登录验证过amid,我们直接建立)
use mydb
db.createUser({user: "myuser",pwd: "root",roles: [{ role: "readWrite", db: "minily" }]});
就演示到这里,其他命令可以去查看官网文档
使用java连接mongo
去阿里云的仓库下载驱动包
这里下载的是:
- mongo-java-driver-3.9.0.jar 驱动包
- mongo-java-driver-3.9.0-sources.jar 源码
- mongo-java-driver-3.9.0-javadoc.jar 参考文档
添加到工程路径中
import org.bson.Document;
import org.junit.jupiter.api.Test;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
public class MongoDBJava {
// 测试数据连接和显示集合名称
@Test
public void test1() {
try {
// 使用url地址连接,第一个root账号,第二个root为密码
MongoClientURI uri = new MongoClientURI("mongodb://admin:123456@127.0.0.1");
MongoClient mongoClient = new MongoClient(uri);
// mydb数据库的名称
MongoDatabase db = mongoClient.getDatabase("mydb");
// 显示该数据库下所有集合的名称
for (String name : db.listCollectionNames()) {
System.out.println(name);
}
} catch (Exception e) {
e.printStackTrace();
}
}
// 测试创建新的集合
@Test
public void test2() {
try {
// 使用url地址连接,第一个root账号,第二个root为密码
MongoClientURI uri = new MongoClientURI("mongodb://admin:123456@127.0.0.1");
MongoClient mongoClient = new MongoClient(uri);
// myd