node.js学习笔记(4)_极客学院_MongoDB的使用
2016-08-01 14:09
741 查看
一.基本使用
1.特点:
->使用BSON存储数据 ->支持相对丰富的查询操作 ->支持索引 ->副本集(活跃节点,备份节点) ->分片 ->无模式 ->部署简单方便
2.启动命令:
mongod --dbpath=G:\NodeJS\MongoDB\data\db --port=xxxxx ->dbpath:指定数据库的路径 ->默认的端口号是:27017 mongo:mongo数据库的客户端工具 ->mongo:默认的本机数据库 ->mongo 127.0.0.1:27017 连接到指定的数据库 ->show dbs: ->user dbname: e.g:use part9 ->db.users.insert({"username":"Linyongzhi"}):插入数据 ==>WriteResult({ "nInserted" : 1 }) ->db.users.find():查看数据 ==>{ "_id" : ObjectId("579eeff52a825343289a2f1f"), "username" : "Linyongzhi" } ->db.users.find({"username":"Linyongzhi"}):查看数据 ==>{ "_id" : ObjectId("579eeff52a825343289a2f1f"), "username" : "Linyongzhi" } ->db.users.find().count():获取条数 ->db.users.update({"username":"Linyongzhi"},{$set{"age":18}}),默认只修改第一条 ->db.users.update({"username":"Linyongzhi"},{$set{"age":18}},{multi:true}):可以修改多条 ->db.users.save(),也可以进行修改 ->db.users.remove({"username":"Zhangxiaojin"}):删除所有满足条件的行 ->db.users.remove({"username":"Zhangxiaojin"},true):删除满足条件的第一行 ->db.users.remove({}):删除所有的行 ->db.users.drop():删除所有的行,包括索引
二.使用Mongose模块操作MongoDB
1.连接数据库兵创建Schema:
var mongoose = require('mongoose') var uri = 'mongodb://username:password@hostname:port/databasename'; uri = 'mongodb://localhost/part9'; mongoose.connect(uri); var BookSchema = new mongoose.Schema({ name: String, author: String, publishTime : Date }); mongoose.model('Book',BookSchema);
2.插入数据
var mongoose = require('mongoose') require('./model.js'); var Book = mongoose.model('Book'); var book = new Book({ name : "MEAN Web", author : "Green", publishTime: new Date() }); book.author = 'Jim'; book.save(function(err){ console.log('sava status:' , err? 'failed' : 'success' ); });
3.查找数据
var mongoose = require('mongoose') require('./model.js'); var Book = mongoose.model('Book'); Book.find({},function(err,docs){ if(err){ console.log('err',err); return; } console.log('result:'+docs); }) -------------------------------- //查找一条记录 var mongoose = require('mongoose') require('./model.js'); var Book = mongoose.model('Book'); Book.findOne({name:"Jim"},function(err,doc){ if(err){ console.log('err',err); return; } doc.name = 'Node.js'; doc.save(); console.log('result:'+doc); })
4.删除数据
var mongoose = require('mongoose') require('./model.js'); var Book = mongoose.model('Book'); Book.findOne({name:"Jim"},function(err,doc){ if(err){ console.log('err',err); return; } doc.remove(); console.log('result:'+doc); });
5.条件查询
var mongoose = require('mongoose') require('./model.js'); var Book = mongoose.model('Book'); var cond = { $or : [ {name:'Jim'}, {name:'Node.js'} ] } Book.find(cond,function(err,docs){ if(err){ console.log('err',err); return; } console.log('cond:',cond,'result:',docs); })
三.在Express中使用MongoDB
项目的结构:1.config.js
module.exports = { mongodb : "mongodb://localhost/part9" };
2.mongoose.js
var mongoose = require('mongoose'); var config = require('./config.js'); module.exports = function(){ var db = mongoose.connect(config.mongodb); require('../models/user.server.model.js'); return db; }
3.user.server.model.js
var mongoose = require('mongoose'); var UserSchema = new mongoose.Schema({ uid : Number, username : String, createTime : Date, lastLogin : Date }); mongoose.model('User',UserSchema); }
4.user.js
//... var mongoose = require('mongoose'); var User = mongoose.model('User'); router.get('/test', function(req, res, next) { var user = new User({ uid : 1, username : 'Linyongzhi' }); //保存操作 user.save(function(err){ if(err){ res.end('Error'); return next(); } User.find({},function(err,docs){ if(err){ res.end('Error'); return next(); } res.json(docs); }); }); });
相关文章推荐
- node.js学习笔记(5)_极客学院_Redis的使用
- 【Node.js学习笔记】使用Gulp项目自动化构建工具
- CoAP学习笔记——nodeJS node-coap安装和使用(Linux平台)
- node.js学习笔记(3)_极客学院_服务器入门
- node.js 学习笔记003 :使用superagent和cheerio实现简单网页爬虫
- 使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程(二)
- node.js学习笔记——练习使用mysql
- 【收藏学习笔记】使用supervisor提高node.js调试效率
- node.js学习笔记之使用文件流
- node.js学习笔记(5)--MongoDB下载及安装
- 从零开始学习Node.js例子八 使用SQLite3和MongoDB
- NodeJS学习系列课程笔记(NodeJS util工具类相关使用方法)
- node.js学习笔记——学生信息管理的实现(把功能模块化)使用官方提供的http模块实现
- node.js学习笔记(4)--使用Express完成简单的登陆
- NodeJS学习系列课程笔记(NodeJs Stream 的相关使用方法)
- NodeJS学习系列课程笔记(NodeJs EventEmitter相关使用方法)
- node.js 学习笔记004:使用eventproxy控制并发
- nodejs+nginx+mongoDB部署项目学习笔记
- 使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程(三)
- Node.js + mongoose + mongodb 学习笔记