• 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呢??

  • 相关阅读:
    软件开发平台正在面临一次重大的升级,java, net比起来简直弱爆了,新型的Html5+JS+JSON开发平台正在形成 人工智能
    Qt编写地图综合应用48地球模式、三维模式、地铁模式
    Qt数据库应用1数据导入导出csv
    Qt编写地图综合应用50获取区域边界
    Qt编写地图综合应用49地图类型(街道图、卫星图)
    Qt数据库应用2数据导出到xls
    Qt编写地图综合应用47经纬度地址互相转换
    C# 线程手册 第七章 网络和线程 系列
    SQL Server Transaction Log Truncate && Shrink
    a href=#与 a href=javascript:void(0) 的区别 打开新窗口链接的几种办法
  • 原文地址:https://www.cnblogs.com/QH-Jimmy/p/6518329.html
Copyright © 2020-2023  润新知