mongo+mongoose+express

Posted QH-Jimmy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:Data\\db"
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呢??

以上是关于mongo+mongoose+express的主要内容,如果未能解决你的问题,请参考以下文章

Mongo基础使用,以及在Express项目中使用Mongoose

如何从服务器端 express/mongo/mongoose 中的 URL,客户端的 axios/react/redux 中获取参数 ID

在 Express 中哪里可以找到 Mongo Collection?

nodejs+express+mongoose无法获取数据库数据问题解决

通过 mongoose 将项目推送到 mongo 数组中

通过 mongoose 将项目推送到 mongo 数组中