node操作MongoDB简单介绍

简单介绍

  1. node要操纵mongodb 我们要使用一个链接的第三方工具------Mongoose
  2. mongoose是nodejs中提供链接mongodb的一个库

使用

1.如果使用mongoose,就必须下载mongoose

npm install --save mongoose(如果使用淘宝镜像,则用cnpm下载)

E:\1911\线上\1912三阶段\NO3\7.note>cnpm install --save mongoose
√ Installed 1 packages
√ Linked 28 latest versions
√ Run 0 scripts
Recently updated (since 2020-04-08): 1 packages (detail see file E:\1911\线上\1912三阶段\NO3\7.note\node_modules\.recently_updates.txt)
√ All packages installed (31 packages installed from npm registry, used 2s(network 2s), speed 72.33kB/s, json 29(150.23kB), tarball 0B)

E:\1911\线上\1912三阶段\NO3\7.note>

2.引用mongoose

// 1.使用mongoose连接数据库
// 1.1 引入mongoose
const mongoose=require('mongoose');

3.连接 数据库

mongoose.connect('mongodb://localhost:27017/自己的库')

// 1.2 开始连接
//connect()返回一个状态待定的连接
mongoose.connect('mongodb://localhost:27017/nj1912',{ useNewUrlParser: true , useUnifiedTopology: true});

4.设置数据库的连接对象

// 1.3 设置数据库的连接对象
const db=mongoose.connection;

5.监听数据库连接成功还是失败

// 1.4 监听数据库连接成功还是失败
db.on('error',console.error.bind(console,'数据库连接错误啦'));
db.on('open',()=>{
    console.log('数据库连接成功'); 
})

6.测试一下

以上步骤是默认步骤,可直接复制使用(只需修改数据库

7.连接数据库成功之后需要对数据进行操作,这时需要使用schema对象,是mongoose操作数据库的顶级对象

创建schema对象的时候还需要指定在当前集合中要操作数据、数据类型还有就是默认值,不能为空

const userSchema=new mongoose.Schema({键名:数据类型,键名:{type:数据类型,default:默认值},键名:{type:数据类型,default:默认值,require:ture 不能为空}})

// 2.创建schema对象和指定集合中的操作数据、数据类型和默认值,不能为空
const userSchema=new mongoose.Schema({
    name:String,
    age:{type:Number,default:20},
    sex:{type:String,require:true,default:'男'}
})

8. 设置集合并把schema对象放进去

const demoUser=mongoose.model('集合名',刚才创建的schema对象)

// 3.设置集合并把schema对象放进去
const demoUser=mongoose.model('users',userSchema);

9. 新增数据

9.1 实例化设置集合并设置数据

// 4.1 实例化设置集合并设置数据
const demo=new demoUser({
    name:"admin",
    age:20,
    sex:"gender"
})

9.2进行存放

db.集合名.save()

// 4.2 进行存放
demo.save()
    .then((ok)=>{
        console.log(ok);  
    })
    .catch((err)=>{
        console.log(err);  
    })

9.3.检测

 

 10.查询

10.1查询全部

db.集合名.find()

// 5.1查询全部
demoUser.find()
    .then((ok)=>{
        console.log(ok); 
    })
    .catch((err)=>{
        console.log(err);
    })

10.2 条件查询

db.集合名.find(条件)

// 5.2 条件查询
demoUser.find({"age":'25'})
    .then((ok)=>{
        console.log(ok);
    })
    .catch((err)=>{
        console.log(err);    
    })

10.3 limit()  显示多少条 skip() 跳过多少条

db.集合名.find().limit().skip()

// 5.3 limit  显示多少条  skip 跳过多少条
// 显示第二条第三条
demoUser.find().limit(2).skip(1)
    .then((ok)=>{
        console.log(ok);
    })
    .catch((err)=>{
        console.log(err);    
    })

11.修改

db.集合名.update({需要修改的内容},{$set:{修改后的内容}},{multi:false})

multi:默认是false  修改知道到的第一条数据  true 修改找到的全部数据

// 6.修改
demoUser.update(
    {"name":"admin1"},
    {$set:{"name":"haha"}},
    {multi:true}
).then((ok)=>{
    console.log(ok);   
}).catch((err)=>{
    console.log(err); 
})

12.删除

12.1 条件删除

 db.集合名.remove(条件)

// 7.1 条件删除
demoUser.remove({"age":'25'})
    .then((ok)=>{
        console.log(ok);  
    })
    .catch((err)=>{
        console.log(err);      
    })

12.2 删除全部

db.集合名.remove()

//7.2 删除全部
demoUser.remove()
    .then((ok)=>{
        console.log(ok);       
    })
    .catch((err)=>{
        console.log(err);
    })

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值