一,安装
windows平台下官网直接下载安装就好了,centos下安装步骤:
1,配置MongoDB的yum源
<code> [mongodb-org] name=MongoDB Repository baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/4.0/x86_64/ gpgcheck=0 enabled=1/<code>
2,安装MongoDB
安装之前先更新所有包 :yum update
安装命令:yum -y install mongodb-org
查看mongo安装位置 whereis mongod
查看修改配置文件 :vi /etc/mongod.conf 如数据库路径dbpath,bindIp: 172.0.0.1 改为 bindIp: 0.0.0.0
3,启动停止MongoDB
启动mongodb :systemctl start mongod.service
停止mongodb :systemctl stop mongod.service
查到mongodb的状态:systemctl status mongod.service
设置开机启动:systemctl enable mongod.service
重启mongodb:systemctl restart mongod.service
启动Mongo shell:mongo
二,nodejs库选择,下面三个都不错,我是选择了mongooes主要是github star多,便于使用,而且有中文文档,也一直有更新。
1,mongodb(也叫 node-mongodb-native)mongodb
官方库,包含了所有且最新的 api,其他大部分的库都是在这个库的基础上改造的。但是呢不支持文档校验,mongodb 是 no schema 的,Mongoose 通过 Schema 支持文档校验,可以防止非正常情况下写入错误的数据到数据库。
2,Mongoose
封装了数据库的操作,给人的感觉是同步的,其实内部是异步的。功能强大,官方文档详细http://www.mongoosejs.net/
3,Mongolass
保持mongodb 一样的 api,借鉴了 Mongoose 的优点,同时又保持了精简。
三,数据库链接,新建db.js
<code>'use strict'; var mongoose =require('mongoose'); const dburl='mongodb://localhost/test'; mongoose.connect(dburl); const db = mongoose.connection; db.once('open' ,() => { console.log( '连接数据库成功' ); }) db.on('error', function(error) { console.error( 'Error in MongoDb connection: ' + error ); mongoose.disconnect(); }); db.on('close', function() { console.log( '数据库断开,重新连接数据库' ); mongoose.connect(dburl, {server:{auto_reconnect:true}}); }); module.exports=db;/<code>
四,数据库操作,Schema,model的使用
1,Schema定义。新建user.js
<code>var mongoose = require('mongoose'); var Schema = mongoose.Schema; // 声明一个数据集 对象 var userSchema = new Schema({ username: { type: String, unique: true }, password: { type: String } }, { versionKey: false, timestamps: true }); // 将数据模型暴露出去 module.exports = mongoose.model('users', userSchema);/<code>
timestamps会自动增加创建时间createdAt,更新时间updatedAt
很多教程是这样的写的
updatedAt: { type: Date, default: Date.now }
这个写法每次更新并不能更新updatedAt这个字段,还是要写代码去处理。
另外注意不能写成default: Date.now()
2,model的使用
查找
<code>User.findOne({ username: 'abc', password: 'abc' }, function (err, data) { if(err) throw err; console.log(dat) })/<code>
保存
<code> const saveData = { username: 'abc', password: 'abc', }; User.create(saveData, function (err, data) { if (err) throw err; console.log(data); })/<code>
更多详细操作见mongoose官方文档