目录
  1. 1. 引入mongoose模块
  2. 2. 连接数据库
  3. 3. 创建表以及字段类型
    1. 3.1. 创建表user
  4. 4. 增加
  5. 5. 输出:Promise{}
  6. 6. 删除
    1. 6.1. 删除指定对象:
    2. 6.2. 删除所有数据:
    3. 6.3. 删除指定ID
  7. 7. 修改
  8. 8. 查找
    1. 8.1. 查找符合条件的所有数据:
    2. 8.2. 查询所有数据:
    3. 8.3. 查询单条数据:
    4. 8.4. 条件查询:$lt(小于) $lte(小于等于) $gt(大于) $gte(大于等于) $ne(不等于)
    5. 8.5. $in(包含等于) $nin(不包含 不等于)
    6. 8.6. $exists(判断当前关键字是否存在)
    7. 8.7. 查询指定列 如果不想要ID值 只需要设置ID = 0;
    8. 8.8. ‘$or’或
    9. 8.9. 升序降序
    10. 8.10. 模糊查询:
    11. 8.11. skip()查询n条以后的数据
    12. 8.12. 显示n到m之间的数据 skip跳过多少条,limit显示m-n条
Mongoose基础知识

Mongoose是一个MongoDB对象建模工具,旨在在异步环境中工作。


引入mongoose模块

1
const mongoose = require('mongoose');

连接数据库

1
2
3
4
5
6
7
mongoose.connect('mongodb://127.0.0.1:27017/hyman',(err)=>{
if(err){
console.log('连接失败')
}else{
console.log('连接成功')
}
})

创建表以及字段类型

创建表user
1
2
3
4
5
const User = mongoose.model('user',{
//规定user表中的字段类型:
name:String,
age:Number
})

增加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const user = new User({
name : '阿古',
age:19
})

const user1 = new User({
name : '美丽',
age:22
})

const user2 = new User({
name : '笑笑',
age:21
})

const user3 = new User({
name : '刘梅',
age:56
})

输出:Promise{}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
console.log(user.save())  
user.save().then((result)=>{
console.log('成功的回调')
},()=>{
console.log('失败的回调')
})

user1.save().then((result)=>{
console.log('成功的回调')
},()=>{
console.log('失败的回调')
})

user2.save().then((result)=>{
console.log('成功的回调')
},()=>{
console.log('失败的回调')
})

user3.save().then((result)=>{
console.log('成功的回调')
},()=>{
console.log('失败的回调')
})

删除

删除指定对象:
1
2
3
User.remove({name:'美丽'}).then((result)=>{ //result:是一个对象 返回值是受影响条数
console.log(result)
})
删除所有数据:
1
2
3
User.remove({}).then((result)=>{
console.log(result)
})
删除指定ID
1
2
3
User.findByIdAndRemove("5c8263170998c51d58e14044").then((result)=>{   //5c8263170998c51d58e14044 ID值
console.log(result);
})

修改

1
2
3
4
5
6
7
User.update({name:'阿古'},{$set:{name:"lily"}},{multi:true}).then((result)=>{
console.log(result); //multi:true 表示修改多条数据
})

User.findByIdAndUpdate("5c8263170998c51d58e14046",{$set:{name:'rose'}},{multi:true}).then((result)=>{
console.log(result);
})

查找

查找符合条件的所有数据:
1
2
3
User.find({name:'lily'}).then((result)=>{
console.log(result);
})
查询所有数据:
1
2
3
User.find().then((result)=>{
console.log(result);
})
查询单条数据:
1
2
3
User.findOne({name:'lily'}).then((result)=>{
console.log(result);
})
条件查询:$lt(小于) $lte(小于等于) $gt(大于) $gte(大于等于) $ne(不等于)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
User.find({'age':{'$lt':20}}).then((result)=>{
console.log(result);
})

User.find({'age':{'$lte':20}}).then((result)=>{
console.log(result);
})

User.find({'age':{'$gt':20}}).then((result)=>{
console.log(result);
})

User.find({'age':{'$gte':20}}).then((result)=>{
console.log(result);
})

User.find({'age':{'$ne':20}}).then((result)=>{
console.log(result);
})
$in(包含等于) $nin(不包含 不等于)
1
2
3
4
5
6
7
User.find({'age':{'$in':[18,19]}}).then((result)=>{
console.log(result)
})

User.find({'age':{'$nin':[18,19]}}).then((result)=>{
console.log(result)
})
$exists(判断当前关键字是否存在)
1
2
3
User.find({sex:{'$exists':true}}).then((result)=>{   
console.log(result);
})
查询指定列 如果不想要ID值 只需要设置ID = 0;
1
2
3
User.find({},{name:1,_id:0}).then((result)=>{
console.log(result);
})
‘$or’或
1
2
3
User.find({'$or':[{name:'lily'},{age:19}]}).then((result)=>{
console.log(result);
})
升序降序
1
2
3
4
5
6
7
User.find().sort({age:1}).then((result)=>{
console.log(result)
})

User.find().sort({age:-1}).then((result)=>{
console.log(result)
})
模糊查询:
1
2
3
4
5
6
7
8
9
10
11
User.find({name:/l/}).then((result)=>{
console.log(result)
})

User.find({name:/^l/}).then((result)=>{ //以l开头
console.log(result)
})

User.find({name:/l$/}).then((result)=>{ //以l结尾
console.log(result)
})
skip()查询n条以后的数据
1
2
3
User.find().skip(1).then((result)=>{
console.log(result)
})
显示n到m之间的数据 skip跳过多少条,limit显示m-n条
1
2
3
User.find().skip(1).limit(3).then((result)=>{
console.log(result);
})

文章作者: Hyman Choi
文章链接: http://yoursite.com/2019/05/10/Mongoose基础知识/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 凌晨四点的拖拉机