MongoDB数据库环境搭建

数据库相关概念

database:数据库,MongoDB数据库可以建立多个数据库。

collection:集合,一组数据的集合,可以理解为javascript中的数组。

document:文档,一条具体的数据, 可以理解为javascript 中的对象。

filed:字段,文档中的属性名称,可以理解为javascript中对象的属性。

Mongoose第三方包

使用Node.js操作MongoDB数据库需要依赖Node.js第三方包Mongoose。

开发流程

1、创建项目文件夹

2、在当前文件夹下打开cmd

3、下载第三方包

npm install mongoose

4、开启MongoDB服务(默认安装之后是开启的) 

5、数据库连接

使用mongoose提供的content方法连接数据库。有两个参数,第一个参数为url(因为使用的是MongoDB数据库所以是mongodb://开头,在本地存储的数据库所以是localhost/,后面是数据库的名称);第二个参数为对象(通过将useNewUrlParser设置为true来避免“不建议使用当前URL字符串解析器”警告。将选项{useUnifiedTopology:true}传递给mongoclient构造函数。来避免当前服务器发现和监视引擎已弃用)。返回一个promise对象,可以调用then和catch方法。

mongoose.connect('mongodb://localhost/playground', {
    useNewUrlParser: true,
    useUnifiedTopology: true
}).then(() => {
    console.log('数据库连接成功');
}).catch(
    err => {
        console.log(err, '数据库连接失败');
    }
)

6、创建集合

对集合设置规则

在mongoose下面有一个Schema构造函数,创建规则就是创建Schema构造函数的实例对象。传递一个对象,对象的属性是集合中的文档可以拥有的属性,属性的值是当前字段的类型。

const courseSchema = new mongoose.Schema({
    name: String,
    author: String,
    isPublished: Boolean
})

创建集合

使用mongoose.model创建集合,有两个参数,第一个是集合名称,第二个是集合规则。

const Course = mongoose.model('Course', courseSchema) //course

7、使用node xxx.js 运行

node index.js 

MongoDB增删改查操作 

1-1、向集合中插入文档

创建文档

const course = new Course({
    name: 'node.js 基础',
    author: 'ABC',
    isPublished: true
})

调用save方法插入数据

course.save();

1-2、向集合中插入文档的另一种方式

Course.create({
    name: 'Node.js',
    author: 'ABC',
    isPublished: false
}).then(result => {
    console.log(result);
})

2-1、通过findOneAndDeleate删除单个  result返回删除的文档

Course.findOneAndDelete({
    _id: '60c32cab11a0b64b00aa8f74'
}).then(result => console.log(result))

2-2、通过deleteMany删除多个

Course.deleteMany({
    age: 18
}).then(result => console.log(result))

3-1、通过updateOne更新单个  有两个参数,第一个查询条件,第二个要更改的值

Course.updateOne({
    name: 'lisi'
}, {
    name: 'ligoudan'
}).then(result => console.log(result))

3-2、通过updateMany更新多个

Course.updateMany({
    name: 'lisi'
}, {
    name: 'ligoudan'
}).then(result => console.log(result))

4-1、通过_id字段查找文档

Course.find({_id: '60c3302e7b1d113a3cf7eaf5'}).then(result => console.log(result))

4-2、findone方法返回一条文档 默认返回当前集合中的第一条文档

Course.findOne({name: 'ABC'}).then(result => console.log(result))

4-3、匹配大于小于   大于20小于50

Course.find({ age: { $gt: 20, $lt: 50 }}).then(result => console.log(result))

4-4、匹配包含

Course.find({
    hobbies: {
        $in: ['敲代码']
    }
}).then(result => console.log(result))

4-5、选择要查询的字段

Course.find().select('name email').then(result => console.log(result))

4-6、根据年龄字段进行升序排列

Course.find().sort('age').then(result => console.log(result))

4-7、根据年龄字段进行降序排列

Course.find().sort('-age').then(result => console.log(result))

4-8、skip跳过多少条数据,limit限制查询数据

Course.find().skip(2).limit(2).then(result => console.log(result))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值