Mongodb数据库

一、连接数据库

注意:要想正常使用mongodb数据库,有以下三个步骤
1. 安装mongodb数据库
2. 在命令行开启mongodb服务
3. 应用程序连接数据库

1. 安装mongodb数据库
安装mongodb数据库,在官网下载,假设安装到 D:\MongoDB,如下所示是,安装好的所有文件

image.png

2. 在命令行开启mongodb服务
[在命令行里进入mongodb的安装目录bin文件夹下(D:\MongoDB\bin>)然后执行语句]

mongod --dbpath E:\WebstormProject\Blog\db  --port=27018

@第1个参数 --dbpath 的值是自己node项目的db文件夹的路径(E:\WebstormProject\Blog\db)
@第2个参数 --port 指定端口,默认是27017,由于别的程序可能占用这个端口,因此自己重写一个27018

出现 waiting for connections on port 27018即可

3. 应用程序连接数据库

mongoose.connect('mongodb://localhost:27018/blog',function(err){
    if(err){
        console.log('数据库连接失败');
    }
    else{
        console.log('数据库连接成功');
        app.listen(8081);
    }
});

//解释说明
@第1个参数:mongodb://localhost:27018/blog
协议:mongodb:
地址://localhost
端口:27018
连接的数据库名 blog
@第2个参数    回调函数,有错误参数,可以进行判断是否连接成功

二、Mongdb基本语法

1. 概念解析

database = 数据库
collection = 表
document = 数据记录行
field = 数据字段/域
index = 索引

2. 定义表结构
schemas 目录下(定义所有的表结构)
比如用户表:users.js

//引入mongoose数据库处理模块
var mongoose = require('mongoose');
//用户的表结构
module.exports = new mongoose.Schema({
    username: String,
    password: String,
    isAdmin : {
        type:Boolean,
        default :false
    }
})

3. 定义模型
models目录下(定义所有表结构对应的模型)
比如用户表的模型:User.js

//引入mongoose数据库处理模块
var mongoose = require('mongoose');

//引入用户表
var usersSchema = require('../schemas/users');

// 通过mongoose.model把users表定义为User模型
module.exports = mongoose.model('User',usersSchema)

在项目中使用数据库的某个表,就需要做完前面2,3步骤,建立这个表的结构和模型。
然后在需要的文件引入模型文件,即可使用

4. 查找所有记录
把表中所有的记录以数组的形式返回

Content.find()

5. 查找符合条件的一条记录
返回数据库中_id的值和传的contentId值相等的1条记录

Content.findOne({
        _id:contentId
    })

//解释
@ _id 是数据库的一个字段
@ contentId 是进行比较的数据

5. 限制查找记录
一般用于分页显示记录

limit = 3;
skip = (page-1)*limit
User.find().limit(limit).skip(skip)    //每次跳过skip条记录然后查找limit条记录

7. 数据库记录总条数
返回总条数count

User.count()

7. 修改记录
修改指定记录的某些字段

Category.update({
                _id:id
            },{
                name:name
            });

@有两个参数{ _id:id},{name:name}
@第一个是用来找到要修改的记录
@第二个是要修改的字段

8. 删除记录

Category.remove({
        _id :id
    })

9. 添加记录并且保存

new Content({
        category: req.body.category,
        title: req.body.title,
        user: req.userInfo._id.toString(),
        description: req.body.description,
        content: req.body.content
    }).save()

@左边是数据库的Content表的所有字段,右边是赋值添加

10. 排序
-1: 按逆序
1:按正序

Category.find().sort({_id:-1})

11. 获取关联字段的其他字段

Content.find().populate('category')

@.populate('category')会把category关联的数据也获取

你可能感兴趣的:(Mongodb数据库)