mongoose

作者: 輪徊傷 | 来源:发表于2020-11-07 16:51 被阅读0次

mongoose官网:https://mongoosejs.com/

官方指南:https://mongoosejs.com/docs/guide.html

官方 API 文档:https://mongoosejs.com/docs/api.html

一、MongoDB 数据库的基本概念

  • 可以有多个数据库
  • 一个数据库中可以有多个集合 === 表
  • 一个集合中可以有多个文档 === 表记录
  • 文档结构很灵活,没有任何限制
  • MongoDB 非常灵活,不需要像 MySQL 一样先创建数据库、表、设计表结构
    • 在这里只需要:当你许哟啊插入数据的时候,只需要指定往哪个数据库的哪个集合操作就可以了
    • 一切都有 MongoDB 来帮你自动完成建库建表这件事
{
  taobao: {//数据库
    users: [//集合
         {id: "1", name: "aaa"},//文档
         {id: "1", name: "aaa"}
    ],
    products: [

    ]
  },
  baidu: {
  
  },  
}

二、起步

安装

npm i mongoose

hello world

const mongoose = require('mongoose');
//连接 mongodb 的 test 数据库
mongoose.connect('mongodb://localhost:27017/test', {useNewUrlParser: true, useUnifiedTopology: true});
//创建一个模型
//就是再设计数据库
const Cat = mongoose.model('Cat', { name: String });
//实例化一个 Cat
const kitty = new Cat({ name: 'Zildjian' });
//持久化保存 kitty 实例
kitty.save().then(() => console.log('meow'));

三、官方指南

3.1 设计 Schema 发布 Model

let mongoose = require("mongoose")

var Schema = mongoose.Schema

//一、连接数据库
// 指定连接的数据库不需要一定不存在,当你插入第一条数据之后就会自动被创建出来
mongoose.connect("mongodb://localhost/itcast")

// 二、设计文档结构(表结构)
//字段名称就是表结构中的属性名称
//值
// 约束的目的是为了保证数据的完整性,不要有脏数据
const userSchema = new Schema({
    username:  {
        type: String,
        require: true
    },
    password: {
        type: String,
        require: true
    },
    email: {
        type: String
    }
});

// 三、将文档结构发布为模型
// mongoose.model 方法就是为了用来将一个架构发布为 model
//     第一个参数:传入一个大写名词单数字符串用来表示你的数据库名称
//                 mongoose 会自动将大写名词的字符串生成 小写复数 的集合名词
//                 例如这里的 User 最终会变成 users 集合名称
//     第二个参数:架构 Schema
//     返回值:模型构造函数
const User = mongoose.model('User', userSchema);

// 四、当我们有了模型构造函数之后,就可以使用这个构造函数对 User 中的数据为所欲为了(增删改查)
//看3.2增    

3.2 增加数据

let admin = new User({
    username: "admin",
    password: "123456",
    email: "admin@admin.com"
})
admin.save(function(err,ret){
    if(err){
        console.log("保存失败")
    }else{
        console.log("保存成功")
        console.log(ret)
    }
})

3.3 查询数据

// 查询所有(ret返回数组)
User.find(function(err,ret){
    if(err){
        console.log("查询失败")
    }else{
        console.log(ret)
    }
})
//按条件查询(ret返回数组)
User.find({username: "zhangSan"},function(err,ret){
    if(err){
        console.log("查询失败")
    }else{
        console.log(ret)
    }
})
//按条件查询,查询符合条件的第一个(ret返回对象)
User.findOne({password: "123456"},function(err,ret){
    if(err){
        console.log("查询失败")
    }else{
        console.log(ret)
    }
})

相关文章

网友评论

      本文标题:mongoose

      本文链接:https://www.haomeiwen.com/subject/ofuomktx.html