MongoDB: Mongoose

本文介绍了MongoDB的基础知识,包括document、collection和schema的概念,以及如何使用Mongoose进行安装配置、定义Schema和创建数据模型Model。通过Model实现增删改查操作,例如创建新的document、保存记录以及查找元素。文章还详细展示了如何定义一个UserSchema并根据其创建User模型,以进行数据库交互。
摘要由CSDN通过智能技术生成

Mongoose

1. 基础知识

  • 基础概念

    document 基本存储单位=> record

    collection 存储document的集合 => table

    schema document模板 => 字段名集合

    model 通过schema 生成模板, 通过模板进行增删改查

  • 安装配置

    npm install mongoose --save

  • 引入模块

    const mongoose = require('mongoose');

    mongoose.connect('mongodb://localhost/test');

    如果由用户名和密码:

    mongoose.connect('mongodb://username:password@localhost:port/dbname')

  • 定义Schema

    MongoDB中的Schema类似SQL中数据库字段, 映射到MongoDB的一个Collection, 可以理解为一种表的格式。

    let UserSchema = mongoose.Schema({
        name:String,
        age:Number,
        status:Number
    })
    

    以上就定义了一个名为UserSchema的Schema数据类型, 但是有类型还不够, 还需要根据Schema创建Model实例

  • 定义和创建数据模型Model

    mongoose接受1~2个参数

    // model里的第一个参数modelName: 首字母大写, 和Collection名称对应
    // 模型会与模型名称相同的多个数据库集合建立连接
    let User = mongoose.model('User', UserSchema);
    

    现在就创建Schema类型对应mongoDB Collection的连接, 可以通过操作Model进行增删改查了。

    注意, mongoDB会根据model名自动创建collection, 单数名词变复数, 字母变小写, 有些词的复数会被同义替换(peason, people)

    Model类似与我们与mongoDB对应Collection的一个连接

2. 增删改查

  • 增加元素

    创建Document

    在mongoDB中, document类似SQL中的一行数据(记录), 我们根据model来创建记录

    let user = new User({
    	name: 'Mouse',
    	age: 99,
    	state : 1
    });
    

    现在我们拥有了一个文档

    user.save(function(err) {
        if (err) {
            return console.error(err);
        }
        console.log('saved');
    })
    

    mongoDB容错性很高, 如果键名错误或者忽略, 则忽略

  • 查找元素:

    User.find({}, function(err, doc) {
        if (err) {
            console.log(err);
        }
        console.log(doc)
    });
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值