mongo学习记录

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值