mongodb 的官网是这样介绍自己的:
MongoDB (from "humongous") is an open-source document database, and the leading NoSQL database. Written in C++
开源、文档型、nosql。
更多详情可以查看mongodb 官网
ubuntu: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
mac: ·brew install mongodb
windows: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/
cd $workspace
mkdir data
mongod --dbpath ./data
mongoose 是个 odm。odm 的概念对应 sql 中的 orm。也就是 ruby on rails 中的 activerecord 那一层。orm 全称是 Object-Relational Mapping,对象关系映射;而 odm 是 Object-Document Mapping,对象文档映射。
它的作用就是,在程序代码中,定义一下数据库中的数据格式,然后取数据时通过它们,可以把数据库中的 document 映射成程序中的一个对象,这个对象有 .save .update 等一系列方法,和 .title .author 等一系列属性。在调用这些方法时,odm 会根据你调用时所用的条件,自动转换成相应的 mongodb shell 语句帮你发送出去。自然地,在程序中链式调用一个个的方法要比手写数据库操作语句具有更大的灵活性和便利性。
// 首先引入 mongoose 这个模块
var mongoose = require('mongoose');
// 然后,连接数据库 localhost为地址,默认连接27017 端口,test为数据库名称
// mongodb 中不需要建立数据库,当你需要连接的数据库不存在时,会自动创建一个出来。
mongoose.connect('mongodb://localhost/test');
// 定义一个Schema
var UsersSchema = new mongoose.Schema({
username: String, //定义一个属性name,类型为String,更多可以查看http://mongoosejs.com/docs/schematypes.html
password: String
});
// 根据Schema定义一个Model
var UsersModel = db_data.model('Users', UsersSchema);
// 查询
UsersModel.findOne({name: 'jimmy'},function(err,user){
console.log(user);
});
// 新增
var UsersEntity = UsersModel({name:"jimmy", age:15}); // 根据model new一个Entity
UsersEntity.save(); //对entity进行操作,保存数据
// 更新
UsersModel.findOne({name: 'jimmy'},function(err,user){
user.name = 'jimmy_updated'; // 返回的是一个实例,也就是entity
user.save();
});
// 删除
UsersModel.findOne({name: 'jimmy'},function(err,user){
user.name = 'jimmy_updated'; // 返回的是一个实例,也就是entity
user.remove();
});