zoukankan      html  css  js  c++  java
  • nodejs 操作 mongodb 数据库

    操作手册:

      npmjs.com

        搜索: mongodb

    使用官方的  mongodb 包来操作

       https://github.com/mongodb/node-mongodb-native     //比较麻烦

    使用第三方包  mongoose 来操作

      mongoose  基于 MongoDB 官方的 mongodb 包再一次做了封装

      官方网址:   http://mongoosejs.com

    mongo数据库连接

    var mongoose = require('mongoose')
    
    var Schema = mongoose.Schema
    
    
    //连接数据库
    //指定连接的数据库不需要存在,当你插入第一条数据之后就会自动创建
    mongoose.connect('mongodb://localhost/itcast')


    // 设计集合结构(表结构)
    // 字段名称就是表结构中的属性名称
    // 值
    // 约束的目的是为了保证数据的安全性, 不要有脏数据

    /*var blogSchema = new Schema({
    title : String,
    author: String,
    body : String,
    comments: [{body : String, date : Date}]
    hidden : Boolean,
    meta : {
    votes : Number,
    favs : Number
    }
    });

    */

    增加数据与表结构设计

    var mongoose = require('mongoose')
    
    var Schema = mongoose.Schema
    
    
    //连接数据库
    //指定连接的数据库不需要存在,当你插入第一条数据之后就会自动创建
    mongoose.connect('mongodb://localhost/itcast')
    
    // 设计集合结构(表结构)
    // 字段名称就是表结构中的属性名称
    //// 约束的目的是为了保证数据的安全性, 不要有脏数据
    
    /*var blogSchema = new Schema({
        title : String,
        author: String,
        body  : String,
        comments: [{body : String, date : Date}]
        hidden : Boolean,
        meta : {
            votes : Number,
            favs : Number
        }
    });
    
     */
    
    
     // 2.设计文档结构
    var userSchema = new Schema({
        username : {
            type : String,
            required : true  //必须有
        },
        password : {
            type : String,
            required : true
        },
        email : {
            type : String
        }
    })
    
    // 3.将文档结构发布为模型
    //      mongoose.model 方法就是用来将一个架构发布为 model
    //      第一个参数: 传入大写名词单数字符用来表示你的数据名称
    //      例如 : 这里的User 最终会变为 users 集合名称
    //      第二个参数: 架构 Schema
    //
    //      返回值: 模型构造函数
    var User = mongoose.model('User', userSchema)
    
    // 4. 当我们有了模型构造函数之后, 就可以使用这个构造函数对 users 
    
    
    // 增加数据
    
    var 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)
        }
    })
    
    
     

     数据查询

    var mongoose = require('mongoose')
    
    var Schema = mongoose.Schema
    
    
    //连接数据库
    //指定连接的数据库不需要存在,当你插入第一条数据之后就会自动创建
    mongoose.connect('mongodb://localhost/itcast')
    
    // 设计集合结构(表结构)
    // 字段名称就是表结构中的属性名称
    //// 约束的目的是为了保证数据的安全性, 不要有脏数据
    
    /*var blogSchema = new Schema({
        title : String,
        author: String,
        body  : String,
        comments: [{body : String, date : Date}]
        hidden : Boolean,
        meta : {
            votes : Number,
            favs : Number
        }
    });
    
     */
    
    
     // 2.设计文档结构
    var userSchema = new Schema({
        username : {
            type : String,
            required : true  //必须有
        },
        password : {
            type : String,
            required : true
        },
        email : {
            type : String
        }
    })
    
    // 3.将文档结构发布为模型
    //      mongoose.model 方法就是用来将一个架构发布为 model
    //      第一个参数: 传入大写名词单数字符用来表示你的数据名称
    //      例如 : 这里的User 最终会变为 users 集合名称
    //      第二个参数: 架构 Schema
    //
    //      返回值: 模型构造函数
    var User = mongoose.model('User', userSchema)
    
    // 4. 当我们有了模型构造函数之后, 就可以使用这个构造函数对 users 
    
    
    // 增加数据
    
    // var 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)
    //     }
    // })
    
    // 查询数据
    // 查询所有
    // User.find(function (err, ret) {
    //     if ( err ) {
    //         console.log( err )
    //     } else {
    //         console.log( ret )
    //     }
    // })
     
    
    // 按条件查询
    
    User.find({ username : 'zs' }, function (err, ret) {
        if (err) {
            console.log(err)
        } else {
            console.log( ret )
        }
    })

    // 按条件查询单个
    User.findOne({ username : 'zs'}, function (err, ret) {
    if (err) {
    console.log(err)
    } else {
    console.log( ret )
    }
    })
     

     删除数据

    var mongoose = require('mongoose')
    
    var Schema = mongoose.Schema
    
    
    //连接数据库
    //指定连接的数据库不需要存在,当你插入第一条数据之后就会自动创建
    mongoose.connect('mongodb://localhost/itcast')
    
    
     // 2.设计文档结构
     var userSchema = new Schema({
        username : {
            type : String,
            required : true  //必须有
        },
        password : {
            type : String,
            required : true
        },
        email : {
            type : String
        }
    })
    
    
    // 增加数据
    
    // var admin = new User({
    //     username: 'zs',
    //     password: '123456',
    //     email:  'admin@admin.com'
    // })
    
    // admin.save( function (err, ret) {
    //     if (err) {
    //         console.log('保存失败')
    //     } else {
    //         console.log('保存成功')
    //         console.log(ret)
    //     }
    // })
    
    
    var User = mongoose.model('User', userSchema)
    // 删除数据
    
    User.remove({
        username : 'zs'
    }, function (err, ret) {
        if ( err ) {
            console.log(err)
        } else {
            console.log('删除成功')
            console.log(ret)
        }
    })
    
    var id = '59f9eb4cc2283e1bac7be51d';
    var removestr = {'username': 'zs'};
    
    User.findByIdAndRemove(id,  removestr, function(err, res){
        if (err) {
                console.log("Error:" + err);
        }
        else {
            console.log("Res:" + res);
        }
    })
    
    
    var removestr = {'username': 'zs'};
    
    User.findOneAndRemove(removestr, function(err, res){
        if (err) {
                console.log("Error:" + err);
        }
        else {
            console.log("Res:" + res);
        }
    })

    更新数据

    var mongoose = require('mongoose')
    
    var Schema = mongoose.Schema
    
    
    //连接数据库
    //指定连接的数据库不需要存在,当你插入第一条数据之后就会自动创建
    mongoose.connect('mongodb://localhost/itcast')
    
    
     // 2.设计文档结构
     var userSchema = new Schema({
        username : {
            type : String,
            required : true  //必须有
        },
        password : {
            type : String,
            required : true
        },
        email : {
            type : String
        }
    })
    
    
    
    
    
    var User = mongoose.model('User', userSchema)
    
    // 更新数据
    
    
    var wherestr = {'username': 'admin'};
    
    // 执行更新数据
    var updatestr = {'password': 'abcdef'};
    
    User.update(wherestr, updatestr, function(err, res) {
    if (err) {
        console.log(err);
    } else {
        console.log(res);
    }
    });
    
    User.findOneAndUpdate({username : 'admin'},{
        password : 'admin123'
    },function (err, ret) {
        if (err) {
            console.log(err)
        } else {
            console.log('更新成功')
            console.log(ret)
        }
    })
    
    
    User.findByIdAndUpdate('5d528b7239a9cf20888515d5',{
        password : 'admin123'
    },function (err, ret) {
        if (err) {
            console.log(err)
        } else {
            console.log('更新成功')
            console.log(ret)
        }
    })
  • 相关阅读:
    FZU 2112 并查集、欧拉通路
    HDU 5686 斐波那契数列、Java求大数
    Codeforces 675C Money Transfers 思维题
    HDU 5687 字典树插入查找删除
    HDU 1532 最大流模板题
    HDU 5384 字典树、AC自动机
    山科第三届校赛总结
    HDU 2222 AC自动机模板题
    HDU 3911 线段树区间合并、异或取反操作
    CodeForces 615B Longtail Hedgehog
  • 原文地址:https://www.cnblogs.com/jasonLiu2018/p/11299174.html
Copyright © 2011-2022 走看看