1.安装下载
link Download MongoDB Community Server | MongoDB
macos安装教程http://t.csdnimg.cn/oYGMZ
2.运行
brew services start mongodb-community@6.0
3.连接数据库
mongosh
连接成功
4.关闭命令
brew services stop mongodb-community@5.0
5.数据库命令
1.显示所有数据库(不显示因为数据库为空)
show dbs
2.切换到指定数据库 没有会创建
use 数据库名
3.显示当前所在数据库
db
4.删除当前数据库
use 库名
db.dropDatabase()
6.集合命令
1.创建集合
db.createCollection('') 集合名
2.显示当前数据库中所有集合
show collections
3.删除某个集合
db.集合名.drop()
4.重命名集合
db.集合名.renameCollection('newname')
7.文档命令
1.插入文档
db.集合名.insert(文档对象)
db.users.insert({name:"123",age:18})
2.查询文档
db.集合名.find(文档对象)
db.users.find({age:18})
3.更新文档
db.集合名.update(查询条件,新的文档)
db.users.update({name:"123"},{$set:{age:99}})
4.删除文档
db.集合名.remove(查询条件)
db.users.remove({name:"123"})
8.js操作数据库 Mongoose 5.0 中文文档
初始化package.json文件 安装mongoose
npm init
npm i mongoose
1.创建文档
const mongoose=require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/bilb')
mongoose.connection.once('open',()=>{
console.log('连接成功');
//创建文档的结构对象
//设置集合中文档的属性及属性类型
let bookSchema= new mongoose.Schema({
name:{
type: String,
required: true, //必须有
unique: true //唯一 (必须重建集合才有效)不能插入相同name的数据
},
author:{
type:String,
default:"匿名" //默认值
},
style:{
type:String,
enum:['小说','文学','青春','励志','管理'] //枚举 设置值必须在这个范围
},
price:Number,
is_hot:Boolean ,
tags:Array,
pub_time:Date, //日期
test:mongoose.Schema.Types.Mixed,//任意类型
doc_id:mongoose.Schema.Types.ObjectId //文档id(一般把另外一个文档的内容放进来)
})
//创建模型对象 对文档操作的封装对象(完成对文档的增删改查)
//创建了一个名字为books的数据集 show collections mongoose会使用集合的复数命名
let bookModel=mongoose.model('books',bookSchema);
//新增
bookModel.create({
name:"4",
author:"张三",
style:"小说",
price:123,
is_hot:true,
tags:['娱乐','电影'],
pub_time:new Date(),
test:'eere',
}).then((err,doc)=>{
if(err){
console.log(err);
return
}
console.log(doc);
//关闭数据库连接 项目运行过程中不会添加
//mongoose.disconnect();
})
})
mongoose.connection.once('error',()=>{
console.log('连接失败');
})
mongoose.connection.once('close',()=>{
console.log('连接关闭');
})
2.删除文档
//删除单条
bookModel.deleteOne({
_id:'65c1b10ca5f02763e5629186'
}).then((err,data)=>{
if(err){
console.log(err);
return
}
console.log(data);
})
//批量删除
bookModel.deleteMany({
is_hot:true
}).then((err,data)=>{
if(err){
console.log(err);
return
}
console.log(data);
})
3.更新文档
//更新单条
bookModel.updateOne({name:'1'},{price:9.9}).then((err,data)=>{
if(err){
console.log(err);
return
}
console.log(data);
})
//批量更新
bookModel.updateMany({author:'张三'},{price:99}).then((err,data)=>{
if(err){
console.log(err);
return
}
console.log(data);
})
4.读取文档
//读取单条
bookModel.findOne({name:'1'}).then((err,data)=>{
if(err){
console.log(err);
return
}
console.log(data);
})
//根据id获取文档数据
bookModel.findById('65c1cc2f06776a4df94dc1b2').then((err,data)=>{
if(err){
console.log(err);
return
}
console.log(data);
})//批量读取
bookModel.find({author:'张三'}).then((err,data)=>{
if(err){
console.log(err);
return
}
console.log(data);
})
5.条件查询
// <$lt >$gt >=$gte <=#lte !==$ne
// 或$or 与$and
//价格小于20的图书
bookModel.find({price:{$lt :20}}).then((err,data)=>{
})
//曹雪芹或余华的书
bookModel.find({$or:[{author:'曹雪芹'},{author:"余华"}]}).then((err,data)=>{
})
//价格大于30且小于70
bookModel.find({$and:[{price:{$gt:30}},{price:{$lt:70}}]}).then((err,data)=>{
})
bookModel.find({price:{$gt:30,$lt:70}}).then((err,data)=>{
})
//正则表达式 搜索书籍名称带有3的书
bookModel.find({name: /3/}).then((err,data)=>{
})
bookModel.find({name: new RegExp('3')}).then((err,data)=>{
})
6.截取数据
bookModel.find().select({name:1,author:1}).exec().then((err,docs)=>{
if(err){
console.log(err);
return
}
console.log(docs);
})
//数据排序 升序sort({name:1}) 倒序sort({name:-1})
bookModel.find().select({name:1,price:1,_id:0}).sort({name:1}).exec().then((err,docs)=>{
if(err){
console.log(err);
return
}
console.log(docs);
})
//截取数据(条数)limit(3) 1~3 skip(2).limit(3) 3~5
bookModel.find().select({name:1,price:1,_id:0}).sort({name:1}).skip(2).limit(3).exec().then((err,docs)=>{
if(err){
console.log(err);
return
}
console.log(docs);
})
9.数据库可视化操作工具下载