You辉编程_MongoDB基础

1.mongodb的使用

# 创建一个数据库(database)

# 创建集合(collection)

# 文档的增删改查

-show dbs:显示所有数据库

-user db_name:进入指定的数据库

-show collections:查看指定数据库里的数据表

-db.db_name.find():查看指定数据表的内容

-db.db_name.insert({username:"lise"}):新增内容

-db.db_name.find({"city":"shanghai"}):按条件查询

-db.db_nam.find().sort({age:1}):排序,1是升序 -1是降序

# bson

-JSON是一种常用的数据格式

-JSON是字符串类型的

-bson = Binary JSON即二进制类型的JSON

# NoSQL

-关系型数据库(如mysql)需要学习sql语言

-如select content,creator from comments;

-NoSQL数据库则无需用SQL语句查询,易学易用

2.nodejs连接mongodb数据库

# 安装mongodb npm(nodejs连接mongodb需要的一个插件) npm install mongodb --save

const MongoClient = require('mongodb').MongoClient;

const url = 'mongodb://localhost:27017'

//要连接的数据库名

const dbName = 'comment1'

//触发连接

MongoClient.connect(url,{

    //触发时的相关配置

    useUnifiedTopology:true,

    useNewUrlParser:true

},(err,client)=>{

    if(err){

        console.error('mongondb连接出错',err);

        return

    }else{

        console.log('mongodb连接成功');

    }

    const db = client.db(dbName);//进入数据库

    //关闭

    client.close();

})

# 连接数据库,连接集合

# 操作文档,增删查改

//nodejs连接mongodb

const MongoClient = require('mongodb').MongoClient;

const url = 'mongodb://localhost:27017'

//要连接的数据库名

const dbName = 'comment1'

//触发连接

MongoClient.connect(url,{

    //触发时的相关配置

    useUnifiedTopology:true,

    useNewUrlParser:true

},(err,client)=>{

    if(err){

        console.error('mongondb连接出错',err);

        return

    }else{

        console.log('mongodb连接成功');

    }

    //进入数据库

    const db = client.db(dbName);

    //进入数据表

    const userCollection = db.collection('users');

    //查询数据、按条件查询、排序

    // userCollection.find({city:'beijing'}).sort({age:1}).toArray((err,result)=>{

    //     if(err){

    //         console.error('查询数据出错',err);

    //         return

    //     }else{

    //         console.log('查询结果',result);

    //     }

    // })

    //新增数据

    // userCollection.insertOne({

    //     username:'zhaoliu',

    //     password:'345',

    //     age:24,

    //     city:'kunming'

    // },(err,result)=>{

    //     if(err){

    //         console.error('新增数据失败',err);

    //     }else{

    //         console.log('新增数据返回的结果',result);

    //     }

    // })

    //修改数据

    // userCollection.updateOne(

    //     {username:'zhangsan'},

    //     {$set:{age:19}},

    //     (err,result)=>{

    //         if(err){

    //             console.error('修改失败',err);

    //         }else{

    //             console.log('修改后的数据',result);

    //         }

    //     }

    // )

    //删除数据

    userCollection.deleteOne({username:'zhaoliu'},(err,result)=>{

        if(err){

            console.error('删除失败',err);

            return

        }else{

            console.log('删除成功',result);

        }

    })

    //

    //关闭

    //client.close();

})

3.mongoose 安装:npm install mongoose

# Schema(使格式更规范)和Model

-Schema定义数据格式的规范

-以Model规范Conllection

-规范数据操作的API

# 基于Model操作数据库

# mongoose操作数据库

-npm install mongoose

db.js

//mongoose连接数据库模块

const mongodb = require('mongoose');

//获取数据库地址 并 找到数据库

const url = 'mongodb://localhost:27017';

const dbName = 'comments2';

//开始连接 connect

mongoose.connect(`${url}/${dbName}`{

    //连接的配置

    useNewURLParser:true,

    useUnifiedTopology:true

})

//连接会发生一些错误需要借助 connection 来提示

const conn = mongoose.connection;

conn.on('error',err=>{

    conosle.log('mongoose连接数据库失败',err);

})

//导出模块

module.exports = mongoose;



 

model.js //数据模型

//利用mongoose里的Schema来规范数据模型

const mongoose = require('./db');

//定义用户的数据模型

const UserSchema = mongoose.Schema({

    username:{

        type:String,

        require:true,

        unique:true

    },

    password:String,

    age:Number,

    city:String,

    gender:{

        type:Number,

        default:0 //默认0-保密,1-男,0-女

    }

},{

    timestamp:true //会自动添加文档的创建时间

})

//把Schema应用到user表里并放到User模型中

const User = mongoose.model('user',UserSchema);

module.exports = {User};

test.js

//使用模型操作数据库

const {User} = require('./model');

!(async ()=>{

    //增加数据

    const zhangsan = await User({

        username:'zhangsan',

        password:'123',

        age:20,

        city:'bijing',

        gender:1

    })

    console.log('新增成功',zhangsan);

    //查询数据

    const userList = await User.find();

    console.log('查到的结果',userList);

    //排序

    const userList = await User.find().sort({age:-1});

    console.log('排序结果',userList);

    //查询单条数据,返回的是对象

    const userList = await User.findOne({username:'zhangsan'});

    console.log('查到的结果',userList);

    //更新或修改数据

    const updateResult User.findOneAndUpdate(

        {username:'zhangsan'}

        {age:18}

        //返回更新后的配置

        {new:true}

    )

    console.log('更新后的结果',updateResult);

    //删除数据

    const removeResult = await User.remove({username:'zhangsan'});

    console.log('删除成功',removeResult);

})()


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值