zoukankan      html  css  js  c++  java
  • mongo+mongoose+express

      直接上指令:

        //*代表自定义名字
        //使用数据库
        use *
        //检查当前数据库
        db
        //查询数据库列表
        show dbs
        //查询当前数据库集合
        show collections
        //插入文档自动创建集合
        db.*.insert({'name':'jimmy'})
        //删除集合
        db.*.drop()
        //查询文档
        db.*.find()
        //格式化显示结果
        db.*.find().pretty()
        //更改文档
        db.*.update('','')
        //替换文档
        db.*.save({_id:ObjectId(),''})
        //删除文档
        db.*.remove('')

       花了我一早上,整出来了。直接上代码:

    var mongoose = require("mongoose");
    //连接数据库
    //mongod -dbpath "F:Datadb"
    mongoose.connect("mongodb://localhost:27017/test");
    //监听连接事件
    var db = mongoose.connection;
    //失败时的回调
    db.on('error', console.error.bind(console, 'connection failed'));
    //成功时的回调函数
    db.once('open', function(callback) {
        //生成表
        var kittySchema = mongoose.Schema({
            username: { type: String, required: true, unique: true },
        });
        //相当于原型方法吧
        kittySchema.methods.speak = function() {
            var greeting = this.name ? "Meow name is " + this.name :
                "I don't have a name";
            console.log(greeting);
        };
        //将表转换为模型 这里会自动加上s
        var Kitten = mongoose.model('Kitten', kittySchema);
        //加入数据
        var fluffy = new Kitten({ name: 'fluffy' });
        //这一步超级重要!!!!
        //把数据存入数据库
        fluffy.save(function(err, fluffy) {
            if (err) {
                return console.error(err);
            }
        });
        //这一步主要展示数据
        Kitten.find(function(err, kittens) {
            if (err) {
                return console.error(err);
            }
            console.log(kittens);
        });
    });

      然后,这里是手动查询得到的结果:

      哈哈哈哈,数据存储成功,可以开始搞事情了。

      

      设计一个数据库接口,直接上代码。

    var mongoose = require('mongoose');
    mongoose.connect("mongodb://localhost:27017/teacher");
    //监听连接事件
    var db = mongoose.connection;
    //失败时的回调
    db.on('error', console.error.bind(console, 'connection failed'));
    //生成表
    var teacherSchema = mongoose.Schema({
        name: { type: String, required: true, unique: true },
        nickname: { type: String, required: true },
        age: { type: Number, required: true },
        sex: { type: String, required: true },
        tel: { type: Number, required: true },
        id: { type: Number, required: true, unique: true },
    });
    
    var t = mongoose.model('t', teacherSchema);
    //添加数据
    function add(obj) {
        var data = new t({
            name: obj.name,
            nickname: obj.name,
            age: obj.age,
            sex: obj.sex,
            tel: obj.tel,
            id: obj.id
        });
        data.save((err, data) => {
            if (err) {
                return console.log(err);
            }
        });
    }
    //查询数据
    function find() {
        return t.find((err, data) => {
            if (err) {
                return console.log(err);
            }
            return data
        });
    }
    //删除数据 暂未实现
    function del() {
    
    }
    //暴露接口
    module.exports = {
        add: add,
        find: find,
        del: del
    }

      这是路由部分进行调用的代码:

    var db = require('./database');
    
    db.add({
        'name': '赵玉川',
        'nickname': '布头儿',
        'age': 28,
        'sex': '男',
        'tel': '15901256171',
        'id': 0
    });

      然后结果如下:

      为什么要自动加上s呢??

  • 相关阅读:
    解剖Nginx·自动脚本篇(7)类型相关脚本系列
    解剖Nginx·自动脚本篇(6)编译器名称变量脚本 auto/cc/name
    解剖Nginx·自动脚本篇(5)编译器相关主脚本
    解剖Nginx·自动脚本篇(4)工具型脚本系列
    解剖Nginx·自动脚本篇(3)源码相关变量脚本 auto/sources
    解剖Nginx·自动脚本篇(2)设置初始变量脚本 auto/init
    解剖Nginx·自动脚本篇(1)解析配置选项脚本 auto/options
    解剖Nginx·模块开发篇(5)解读内置非默认模块 ngx_http_stub_status_module
    jupyter nb + scite 混合搭建成我的最爱IDE
    md语法之行内代码和代码片续集
  • 原文地址:https://www.cnblogs.com/QH-Jimmy/p/6518329.html
Copyright © 2011-2022 走看看