MongoDB/Robo3T安装
1、MongoDB安装
- MongoDB安装
下载.msi文件
安装时,取消勾选“MongoDB Compass”,它是MongoDB官方的图形化工具,无须安装。 - 配置环境变量
系统设置->环境变量->添加PATH:D:\mongo\bin - 启动mongodb服务
mongod --dbpath "D:\mongo\data" - 使用 mongo shell 连接mongodb服务
连接服务:mongo
查看数据库列表:show dbs;
2、Robo3T安装
- Robo3T
- 使用步骤如下:
官网下载 robo3t-1.3.1-windows-x86_64-7419c406.exe
点击安装
填写相关信息,启动 Robo3T
GitBash启动 MongoDB服务
在Robo3T中创建连接、完成 - 使用Robo3T
- 连接本地MongoDB服务
- 查看集合,切换三种显示方式——json视图、表格视图、对象视图
- 使用Robo3T Shell:输入mongo shell命令,点击“执行”按钮
MongoDB 数据库
1、MongoDB vs. MySQL 及其概念讲解
MongoDB是一个基于分布式文件存储的数据库,由C++编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。
特点:高性能、易部署、易使用、存储数据非常方便。
2、MongoDB vs. MySQL
SQL术语/概念 | MongoDB术语/概 | 解释/说明 | |
---|---|---|---|
database | database | 数据库 | |
table | collection | 数据库表/集合 | |
row | document | 数据记录行/文档 | |
column | field | 数据字段/域 | |
index | index | 索引 | |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
3、MongoDB的数据类型
- String
- Integer
- Boolean
- Double
- Min/Max keys
- Array
- Timestamp
- Object
- Null
- Symbol
- Date
- Object ID
- Binary Data
- Code
- Regular expression
4、使用 mongo shell,常用命令
1、帮助命令
help
db.help()
2、数据库操作命令
show dbs
use dbname 切换数据库
db / db.getName() 查看当前数据库名称
db.stats() 显示当前DB的状态
db.version() 查看当前DB的版本
db.getMongo() 查看当前DB的连接的主机地址
db.dropDatabase() 删除当前DB
3、创建数据库和集合
use project 不存在就创建,存在就切换至
db.createCollection('user') // 创建user集合
show dbs
show collections / db.getCollectionNames()
db.getCollection('music') 获取指定集合
db.printCollectionStats() 打印指定集合的状态
4、集合中的文档操作:
db.user.insertOne({}) 向集合中插入文档
db.user.insertMany([{},{}])
db.user.save({})
db.user.updateOne({"name":"cyr"}, {$set:{"age":100}})
db.user.updateMany({},{$set:{}})
db.user.deleteOne({"name":"jiaming"})
db.user.deleteMany({})
db.user.remove({}) // 要指出删除的条件
6、聚集集合查询
db.user.find() 查询所有记录
db.user.find({age:22}) 查询age=22的记录
db.user.find({age:{$gt: 22}}) 查询age>22的记录
db.user.find({age:{$lt: 22}}) 查询age<22的记录
db.user.find({age:{$gte: 22}}) 查询age>=22的记录
db.user.find({age:{$lte: 22}}) 查询age<=22的记录
db.user.find({age:{$gte:20, $lte:30}}) 查询age>=20 && age<=30的记录
db.user.find({name:/cyr/}) 查询name中包含'cyr'的记录
db.user.find({name:/^cyr/}) 查询name以'cyr'开头的记录
db.user.find({},{name:1,age:1}) 查询所有记录,只返回name和age字段(1-显示 0-不显示)
db.user.find({age:{$gt:20}},{name:1,age:1}) 查询age>20的记录,只返回name和age字段
db.user.find().sort({age:1}) 按age进行升序排列
db.user.find().sort({age:-1}) 按age进行降序排列
db.user.find({},{name:1,age:1,_id:0}).sort({age:1})
db.user.find({name:'cyr',age:22}) 查询name='cyr' && age=22的记录
db.user.find().limit(5) 只查询前5条记录
db.user.find().skip(10) 查询10条以后的所有数据
db.user.find().skip(5).limit(5) 查询第6~10条记录
db.user.find({$or:[{age:20},{age:25}]}) 查询age=20或者age=25的记录
db.user.findOne() 查询满足条件的第一条记录
db.user.find({age:{$gte:25}}).count() 查询满足条件的记录的总条数
7、实战mongo shell
构造一批假数据,使用insertMany()入库
然后就可以使用上述命令进行实战练习了
Node.js连接
安装mongodb的模块:
npm install mongoose
1.连接数据库
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var db = mongoose.connection;
db.on('error', function(){
console.log('数据库连接错误')
}));
db.once('open', function() {
console.log('数据库连接成功')
});
2.创建数据表
var mongoose = require('mongoose')
var articleSchema = mongoose.Schema({
title: String,
content: String,
createTime: Number,
username: String
})
var articleModel = mongoose.model('articles', articleSchema);
3.插入数据
var arr = [{ name: 'Star Wars' }, { name: 'The Empire Strikes Back' }];
Movies.insertMany(arr).then(data=>{
}).catch(err=>{
});
4.查询数据
userModel.find({}).then(data=>{
}).catch(err=>{
});
5.更新数据
articleModel.updateOne({}, {}).then(data=>{
}).catch(err=>{
})
6.删除数据
articleModel.deleteOne({}).then((data)=>{
}).catch(err=>{
})
网友评论