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?