MongoDB入门
简介
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
下载mongoDB
在win7系统安装mongodb需要vc++运行库,如果没有则会提示“无法启动此程序,因为计算机中丢失
VCRUNTIME140.dll”。
启动mongodb
创建几个文件夹具体如下:数据库路径(data目录)、日志路径(logs目录)和日志文件(mongo.log文件)
创建配置文件mongo.conf,文件内容如下:
#数据库路径
dbpath=d:\MongoDB\Server\3.4\data
#日志输出文件路径
logpath=d:\MongoDB\Server\3.4\logs\mongo.log
#错误日志采用追加模式
logappend=true
#启用日志文件,默认启用
journal=true
#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=true
#端口号 默认为27017
port=27017
通过执行bin/mongod.exe,使用–install选项来安装服务,使用–config选项来指定之前创建的配置文件。
mongod.exe ‐‐config “d:\MongoDB\Server\mongo.conf” ‐‐install
启动MongoDB服务
net start MongoDB
关闭MongoDB服务
net stop MongoDB
移除MongoDB服务
" d:\MongoDB\Server\bin\mongod.exe" ‐‐remove
启动mongodb服务,
命令执行后,浏览器中输入http://127.0.0.1:27017看到如下界面即说明启动成功
也可以通过bin目录下的mongo.exe连接mongodb
studio3t
studio3t是mongodb客户端工具。
官方地址https://studio3t.com/
创建新连接
默认collection admin、local
不同术语说明
sql术语 | MongoDB术语 | 说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
column | field | 数据字段/域 |
基本命令
1、查询数据库
show dbs 查询全部数据库
db 显示当前数据库
2、创建数据库
use DATABASE_NAME
有数据库则切换到此数据库,没有则创建。
注意:
新创建的数据库不显示,需要至少包括一个集合。
3、删除数据库(慎用)
db.dropDatabase()
先切换数据库:use DATABASE_NAME
再执行删除:db.dropDatabase()
4、创建集合
db.createCollection(name, options)
name: 新创建的集合名称
options: 创建参数
5、删除集合
db.collection.drop()
例子:
db.user.drop() 删除user集合
6、插入文档
每个文档默认以_id作为主键,主键默认类型为ObjectId(对象类型),mongodb会自动生成主键值。
db.COLLECTION_NAME.insert({“name”:“xxx”,“age”:20})
7、更新文档
将符合条件 “name”:"xxx"的第一个文档替换为{“name”:“xx”,“age”:10}。
db.user.update({“name”:“xxx”},{“name”:“xx”,“age”:10})
8、删除文档
db.student.remove(<query>)
删除所有文档
db.user.remove({})
删除符合条件的文档
db.user.remove({"name":"xx"})
query:删除条件,相当于sql语句中的where
9、查询文档
db.collection.find(query, projection)
query:查询条件,可不填
projection:投影查询key,可不填
查询全部
db.user.find()
查询符合条件的记录
db.user.find({“name”:“xx”})
10、创建用户
use admin
db.createUser(
{
user:"root",
pwd:"root",
roles:[{role:"root",db:"admin"}]
}
)
root是超级用户角色
完成后就可以使用Studio3T认证登录
11、修改用户
db.updateUser(“admin”,{roles:[{role:“readWriteAnyDatabase”,db:“admin”}]})
修改密码
db.changeUserPassword(“username”,“newPasswd”)
删除用户
db.dropUser(“用户名”)
Spring Data mongodb
需要继承MongoRepository<object,object>
同Spring Data JPA一样Spring Data mongodb也提供自定义方法的规则,如下:
按照findByXXX,findByXXXAndYYY等规则定义方法,实现查询操作。
public interface UserDao extends MongoRepository<User,String> {
//根据名称查询
User findByName(String pageName);
//根据id查询
User findById(String id);
}