标签

1、mongoose中为我们提供了几个新的对象:
1). Schema
约束(通过Schema设计文档[表]结构的同时约束数据)

2). Model
模型 | 表 | 集合
来操作具体的数据

3). document
具体的一条一条记录

2、mongoose操作mongodb的步骤:
1). 开启mongodb服务
2). 下载mongoose包
npm i mongoose -S
let mongoose = require('mongoose')

3). 连接数据库
mongoose.connect('mongodb://localhost/mongoose_demo',{ useNewUrlParser:true })

4). 定义Schema
5). 根据Schema创建Model对象
6). 通过Model进行CRUD操作
    
3、mongoose简单实例:
mongoose_demo.js:

// 引入mongoose包
const mongoose = require('mongoose')

//连接数据库

//console.log(typeof mongoose);

//mongoose.connect( url,options )
//默认27017可以省略
//useNewUrlParser这个属性会在url里识别验证用户所需的db
//mongodb://localhost:27017/数据库  必须指定数据库名
mongoose.connect('mongodb://localhost/mongoose_demo',{ useNewUrlParser:true })

//连接成功以后,mongoose对象有一个connection 属性,它可以兼听数据库的打开与关闭事件
//open 事件   close 事件
mongoose.connection.on( 'open',()=>{
    console.log( 'success' )
})

mongoose.connection.on( 'close',()=>{
    console.log( 'close' )
})

//mongodb上有 关闭数据库的方法
mongoose.disconnect()

4、通过mongoose操作数据库:
mongoose_opt.js

//引入mongoose包
const mongoose = require('mongoose')
//连接数据库
mongoose.connect('mongodb://localhost/mongoose_demo',{ useNewUrlParser:true })
var Schema = mongoose.Schema
//console.log(Schema);

//设计用户表|设计用表约束
// 使用 Schema构造函数 创建一个userSchema 实例对象
var userSchema = new Schema({
    username:String,
    age:Number,
    sex:{
        type:String,
        default:''
    }
})

//console.log(userSchema);
// 创建表 通过约束创建表
//console.log(mongoose.model);

//mongoose.model( 表名|集合名,Schema约束的实例 )
let userModel = mongoose.model('users',userSchema)

//console.log(typeof userModel);
// 无论添加成功与否,都会执行回调函数
userModel.create({
    username:'小王',
    age:18,
    sex:''
    }, function (err) {
        console.log(err);
    if( !err ){
        console.log('ok')
    }
})

5、Model.create( doc[s],callback )方法:
   
Model.create.js

//引入mongoose包
const mongoose = require('mongoose')

//连接数据库
mongoose.connect('mongodb://localhost/mongoose_demo',{ useNewUrlParser:true })

var Schema = mongoose.Schema
var userSchema = new Schema({
    username:String,
    age:Number,
    sex:{
        type:String,
        default:''
    }
})
let userModel = mongoose.model('user',userSchema)
      Model.create( doc[s],callback )
userModel.create([
    {"username":"小张",age:15,sex:""},
    {"username":"小明",age:20,sex:""},
    {"username":"tom",age:15,sex:""},
    {"username":"jack",age:21},
], function (err) {
if(!err) return console.log('ok')
})   

6、Model.find()方法:

const mongoose = require('mongoose')
mongoose.connect('mongodb://127.0.0.1:27017/mongoose_demo',{ useNewUrlParser:true })
const userSchema = new mongoose.Schema({
    username:String,
    age:Number,
    sex:{
        type:Number,
        default:1 // {1:男,2:女 }
    },
      oldEnough:Boolean
})
    const userModel = mongoose.model( 'user',userSchema )

* Model.find(conditions, projection, options, callback)  是一个数组
* conditions  条件
[projection]  要展示的字段
[options]  查询选项  排序  限制  跳过  sort  limit  skip
[callback] «Function»  回调函数,查找到的结果 从回调函数当中获取

userModel.find({}, (err,docs)=>{
    console.log( docs )
})
    // 查询性别为女的
userModel.find({ sex:2 }, (err,docs)=>{
    console.log( docs )
})

//显示对应字段
//两种写法
//{ username:1,age:1,_id:0 }   " username sex"
userModel.find({ sex:2 },{ username:1,age:1,_id:0 }, (err,docs)=>{
    console.log( docs )
})
/*显示对应字段的字符串形式写法
userModel.find({ sex:2 },'username sex -_id', (err,docs)=>{
    console.log( docs )
})
userModel.find(
    {},
    {},
    {
    sort:{age:-1},
    limit:2,
    skip:3
    },
    function (err,docs) {
        console.log(docs);
})

    

 

posted @ 2019-07-31 18:03  Zhang_S  阅读(81)  评论(0)    收藏  举报