直接上指令:

    //*代表自定义名字
//使用数据库
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的更多相关文章

  1. Mongo, Express, Angular, Node-- MEAN Stack搭建

    前言 作为一个从后端转全栈的码农,我一直使用express,jade & bootstrap, jquery的组合.重复了几次相同的工作后,看到网上开始流行MEAN Stack,于是也对其研究 ...

  2. [js高手之路]Node.js+jade+express+mongodb+mongoose+promise实现todolist

    promise主要是用来解决异步回调问题,其实还有好几种比promise更好的方案,后面再说,这节,我们先用promise来改造下,我以前写的一篇文章[js高手之路]javascript腾讯面试题学习 ...

  3. node.js,express入门看详细篇

    先最简单的代码 安装 npm install express app.js 代码内容 const express = require('express') const app = express() ...

  4. 【进击后端】ubuntu 快速安装node mongodb express

    安装软件:node,mongo,express 1.apt install node 2.node -v 3.apt install mongodb 4.mongo -version 5.apt in ...

  5. MERN——MongoDB && React && Node && Express

    原文链接:Let’s build a full stack MongoDB, React, Node and Express (MERN) app github源码地址:jelorivera08/re ...

  6. ExpressJS File Uploading – GridFS – MongoDB

    n this blog post we will see how to handle multipart data/file uploading with expressjs. Save files ...

  7. 全 Javascript 的 Web 开发架构:MEAN

    http://developer.51cto.com/art/201404/434759.htm 全 Javascript 的 Web 开发架构:MEAN 引言 最近在Angular社区的原型开发者间 ...

  8. 【转】全Javascript的Web开发架构:MEAN和Yeoman【译】

    引言 最近在Angular社区的原型开发者间,一种全Javascript的开发架构MEAN正突然流行起来.其首字母分别代表的是:(M)ongoDB——noSQL的文档数据库,使用JSON风格来存储数据 ...

  9. node.js应用--转载

    最近,在向大学生们介绍 HTML5 的时候,我想要对他们进行问卷调查,并向他们显示实时更新的投票结果.鉴于此目的,我决定快速构建一个用于此目的的问卷调查应用程序.我想要一个简单的架构,不需要太多不同的 ...

随机推荐

  1. hdfs存取文件机制

    HDFS和HBase是Hadoop中两种主要的存储文件系统,两者适用的场景不同,HDFS适用于大文件存储,HBASE适用于大量小文件存储.本文主要讲解HDFS文件系统中客户端是如何从Hadoop集群中 ...

  2. PHP数组运算符

    PHP数组预算符有==(等于),===(恒等于),!=(不等于),<>(不等于),+(联合): 注意:没有-(减号)运算符: $a=array("a"=>&quo ...

  3. 在 docker 容器中捕获信号

    我们可能都使用过 docker stop 命令来停止正在运行的容器,有时可能会使用 docker kill 命令强行关闭容器或者把某个信号传递给容器中的进程.这些操作的本质都是通过从主机向容器发送信号 ...

  4. OpenCV探索之路(二十五):制作简易的图像标注小工具

    搞图像深度学习的童鞋一定碰过图像数据标注的东西,当我们训练网络时需要训练集数据,但在网上又没有找到自己想要的数据集,这时候就考虑自己制作自己的数据集了,这时就需要对图像进行标注.图像标注是件很枯燥又很 ...

  5. web版的tty

      1.wetty Wetty是使用Node.js和websockets开发的一个开源`Web-based SSH` 2.环境配置 2.1.配置epel源 [epel] name=epel baseu ...

  6. 2013 ACM/ICPC Asia Regional Chengdu Online hdu4731 Minimum palindrome

    Minimum palindrome Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  7. 史上前端面试最全知识点(附答案)---html & js & css

    史上前端面试最全知识点(附答案) 一.html & js & css 1.AMD和CMD是什么?它们的区别有哪些? AMD和CMD是二种模块定义规范.现在都使用模块化编程,AMD,异步 ...

  8. Python自学笔记-filter()函数(来自廖雪峰的官网Python3)

    感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. Python内 ...

  9. vue2组件之select2调用

    目前,项目中使用了纯前端的静态项目+RESTFul接口的模式.为了更好的对数据进行操作,前端使用了vue2的mvvm功能,但是由于不是单页面应用,所以,并没有涉及到其它的如vue-route等功能,也 ...

  10. Echarts数据可视化series-radar雷达图,开发全解+完美注释

    全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...