直接上指令:

    //*代表自定义名字
//使用数据库
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. Struts+Spring+Hibernate项目整合AJAX+JSON

    1.什么是AJAX AJAX是 "Asynchronous JavaScript and XML" 的简称,即异步的JavaScript和XML. 所谓异步,就是提交一个请求不必等 ...

  2. mapreduce自定义排序(map端1.4步)

    3 3 3 2 3 1 2 2 2 1 1 1 -----------------期望输出 1 1 2 1 2 2 3 1 3 2 3 3 将以上数据进行排序,排序规则是:按照第一列升序排序,如果第一 ...

  3. ACM学习之路___HDU 2066 一个人的旅行

    Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还 ...

  4. 阿里云服务器解决mysql远程连接失败问题

    嗯,自己买了个阿里云的学生机服务器,奈何装了mysql以后一直不能连接,也是够笨的. 记录一下自己遇到的问题. 当然了,首先需要在阿里云安全组开放3306端口,第一次玩儿云服务器差点把我搞坏了.... ...

  5. BZOJ-1050-[HAOI2006]旅行comf(并查集)

    Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求 一条路径,使得路径上最 ...

  6. 【NOIP2016提高组day2】蚯蚓

    那么我们开三个不上升队列, 第一个记录原来的蚯蚓, 第二个记录乘以p的蚯蚓 第三个记录乘以(1-p)的蚯蚓, 在记录每条就要入队列的时间,就可以求出增加的长度 每次比较三个队列的队首,取最大的值x的切 ...

  7. python---random模块使用详解

    random与随机操作有关的模块 常用方法: random() --- 返回0-1之见得一个随机浮点数. 调用:random.random() 例如: >>> random.rand ...

  8. DAO与DTO

    DAO叫数据访问对象(data access object) DTO是数据传输对象(data transfer object) DAO通常是将非对象数据(如关系数据库中的数据)以对象的方式操纵.(即一 ...

  9. python爬取煎蛋图片

    py2版本: #-*- coding:utf-8 -*- #from __future__ import unicode_liter import urllib,urllib2,time import ...

  10. hadoop各个名词的理解

    Hadoop家族的各个成员 hadoop这个词已经流行好多年了,一提到大数据就会想到hadoop,那么hadoop的作用是什么呢? 官方定义:hadoop是一个开发和运行处理大规模数据的软件平台.核心 ...