博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【SRH】------mongoose,增、删、改、查
阅读量:6657 次
发布时间:2019-06-25

本文共 3058 字,大约阅读时间需要 10 分钟。

mongoose中文文档
https://cn.mongoosedoc.top/docs/guide.html

mongodb与mongoose的区别

mongodb
非关系型数据库,可自定义字段类型
一个mongodb中可以建立多个数据库
mongodb的默认数据库为db,该数据库存储在data目录中
mongodb的单个实例可以容纳多个独立的数据库,每个都有自己的集合和权限,不同的数据库放置在不同的文件中
 
 
mongoose
    mongoose是
mongoDB的一个对象模型工具,是基于node-mongodb-native开发的mongoDB的nodejs驱动,可以在异步的环境下执行
。同时它也是针对mongoDB操作的一个对象模型库,封装了mongoDB对文档的一些增删改查等常用方法,让nodejs操作mongoDB数据库变得更加容易
 
可以将非关系型数据库转为关系型数据库可以限制字段的类型mongoose有promise的用法形式,可以链式操作
 
 
0.准备工作
先安装mongoodb 和node.js
 
1.启动mongodb服务器
mongod --dbpath e:\data\db
 
2.在项目根目录下 
   初始化项目               npm init -y       下载mongoose            cnpm install  mongoose  --save-dev(局部下载,如果需要该模块,每个项目下都要新下载)

 

node连接数据库,实现增、删、改、查

//引入mongoose模块const mongoose = require("mongoose");//定义连接的数据库地址和数据库名称const url = "mongodb://127.0.0.1:27017/demo3";
//连接数据库demo3mongoose.connect(url,(err)=>{    //判断是否连接成功    if(err){        console.log("连接失败");    }else{        console.log("连接成功");    }})
 
//创建新表,并规定表中的数据类型// 参1:需要连接的表(mongoose会自动将这个表加s)// 参2:字段的类型对象(字段的配置项),是一个对象// model为函数(相当于构造函数,Stu为函数名)const Stu = mongoose.model("user",{    name:String,    age:Number})
//增(想要增加多条数据,就要创建多个对象)
const stu1 = new Stu({    name:"赵",    age:13})stu1.save().then((data)=>{   // 回调函数中只有一个参数data,没有err    //data为增加到数据库中的数据    console.log(data)    })
//删
Stu.remove({    name:"赵"}).then((data)=>{     //回调函数中只有一个参数data,没有err    //data为删除的数据的条数,删除是否成功    console.log(data);//{ n: 4, ok: 1 }})
//改
Stu.update({    name:"孙"},{    $set:{        "age":222    }}).then((data)=>{    //{ n: 1, nModified: 1, ok: 1 }    console.log(data)})
//查  所有数据(链式操作,查找后输出)
Stu.find().then((data)=>{    //回调函数中只有一个参数data,没有err    console.log(data);})
//查  指定数据
Stu.find({name:"孙"}).then((data)=>{    console.log(data)})
//查  指定的列
Stu.find({},{
"name":2,"_id":0}).then((data)=>{ console.log(data);})
//查  第一条数据
Stu.findOne().then((data)=>{    console.log(data);})
//升序
Stu.find().sort({
"age":1}).then((data)=>{ console.log(data);})
//降序
Stu.find().sort({
"age":-1}).then((data)=>{ console.log(data);})
//查找比较 > 、<、>=、<=//>
Stu.find({age:{$gt:15}}).then((data)=>{    console.log(data);})
//<
Stu.find({age:{$lt:15}}).then((data)=>{    console.log(data);})
//>= <=
Stu.find({age:{$gte:12,$lte:18}}).then((data)=>{    console.log(data);})
//不等于
Stu.find({age:{$ne:13}}).then((data)=>{    console.log(data);})
//模糊查询(正则)
Stu.find({name:/孙/}).then((data)=>{    console.log(data);})
 
Stu.find({name:/^王/}).then((data)=>{    console.log(data);})
 
Stu.find({name:/王$/}).then((data)=>{    console.log(data);})
 

 

//or或者
Stu.find({$or:[{name:"李"},{name:"吴"}]}).then((data)=>{    console.log(data);})

 

//分页//limt
Stu.find().limit(2).then((data)=>{    console.log(data);})
//skip()
Stu.find().skip(1).then((data)=>{    console.log(data);})
 
Stu.find().skip(1).limit(1).then((data)=>{    console.log(data);})
//包含$in,查找年龄是13和17的数据(注意,不是范围)
Stu.find({age:{$in:[13,17]}}).then((data)=>{    console.log(data);})
///包含$nin,查找年龄不是13和17的数据(注意,不是范围)
Stu.find({age:{$nin:[13,17]}}).then((data)=>{    console.log(data);})

 

 

 

转载于:https://www.cnblogs.com/SRH151219/p/10202863.html

你可能感兴趣的文章
ORACLE - 管理控制文件
查看>>
metro 下载xml文件
查看>>
Spring REST实践之客户端和测试
查看>>
java注解(转)
查看>>
使用activeMQ实现jms
查看>>
linuxC动态内存泄漏追踪方法
查看>>
[转]PHP Session原理分析及使用
查看>>
(二)selenium元素定位
查看>>
数据库部分
查看>>
python字典的定义和操作
查看>>
excel批量加前后缀
查看>>
2D空间中求线段与圆的交点
查看>>
常见标签的默认属性值及相互作用——关于CSS reset的思考
查看>>
jQuety遍历数组
查看>>
jvm的内存模型
查看>>
启动后再显示状态栏Status Bar
查看>>
如何向函数传递一个数组?
查看>>
jQuery中插件的应用(注册的验证)
查看>>
MySQL ubuntu启动
查看>>
玩转X-CTR100 l STM32F4 l DHT11温湿度传感器
查看>>