mongodb数据库基础操作

78 阅读2分钟

本文正在参加「技术专题19期 漫谈数据库技术」活动

连接数据库


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

集合规则

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

使用规则创建集合构造函数

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

const course = new Course({
    name: 'node',
    author: 'heima',
    isPublished: false
})

数据保存到数据库中

course.save();

向集合中插入文档

Course.create({name: 'javascript', author: '讲师', isPublished: false}, (err, result) => {
    console.log(err);
    console.log(result);
})

支持promise

Course.create({name: 'javascript213', author: '讲师', isPublished: false})
    .then((result) => {
       console.log(result);
    })
### 集合规则
const userSchema = new mongoose.Schema({
    name: String,
    age: Number,
    email: String,
    password: String,
    hobbies: [String]
}) 

使用规则创建集合构造函数

const User = mongoose.model('User', userSchema) 

查询用户集合中所有文档

User.find().then(result => console.log(result))

通过_id字段查找文档

User.find({_id: '5c09f1e5aeb04b22f8460965'}).then(result => console.log(result))

findOne方法返回一条文档,默认返回当前集合中的第一条文档

User.findOne({name: '李四'}).then(result => console.log(result))

匹配大于小于

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

匹配包含

User.find({hobbies: {$in: ['足球']}}).then(result => console.log(result))

选择要查询的字段 -不查询空格隔开

User.find().select('email -_id').then(result => console.log(result))

将数据按照年龄进行排序 -降序

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

skip跳过多少条数据, limit限制查询数据量

User.find().skip(2).limit(1).then(result => console.log(result))

使用规则创建集合构造函数


const User = mongoose.model('User', userSchema) 

查找到一条文档并且删除,返回删除的文档 ,匹配多个文档,删除第一个匹配的文档

 User.findOneAndDelete({_id: '5c09f2d9aeb04b22f846096b'}).then(result => console.log(result))

删除多个

User.deleteMany({}).then(result => console.log(result))

使用规则创建集合构造函数

const User = mongoose.model('User', userSchema)  

更新集合中的文档

User.updateOne({name: '李四'},{name: '文治'}).then(result => console.log(result))

更新集合中多个文档

User.updateMany({},{age: '10'}).then(result => console.log(result))

创建用户6359fe9a53ee71396bc5f450

 User.create({name: 'it'}).then(result => console.log(result))

创建文章

Post.create({title: '123', author: '6359fe9a53ee71396bc5f450'}).then(result => console.log(result))
Post.find().populate('author').then(result => console.log(result))

添加数据库账号 1.以系统管理员的方式运行powershell

2.连接数据库 mongo

3.查看数据库 show dbs

4.切换到admin数据库 use admin

5.创建超级管理员账户 db.createUser()

6.切换到自己的数据库 use admin

7.创建普通账号 db.createUser()

本文正在参加「技术专题19期 漫谈数据库技术」活动