mongodb

非关系型数据库nosql. 没有行列的说法,只有collection 文档 相对老的数据的说法就是表和记录。

安装:

brew update
brew install mongodb复制代码

安装的路径:

cd /usr/local/Cellar/mongodb/3.4.3/bin
复制代码

启动:brew services start mongodb 关闭:brew services stop mongodb 浏览器打开网址:localhost:27017 并在bin的文件目录下运行命令./mongo 命令show dbs可以查看已经创建的数据库

test 是我建的一个数据库show dbs //显示数据库
db // 查看已选定的数据库
use test //使用某个数据库 没有则新建
db.createColletion(‘user’) //创建集合user 是我创建的一个集合db. user.insert({‘name’:’byc’}) //插入一条记录
db. user.find() //查找所有记录
db.user.findOne();
db.dropDatabase() //删除数据库
db. user.drop //删除指定集合
show collections //显示所有集合
db. user.save({}) //插入记录db.test.update({‘_id’,1},{$set:{name:’test’,age:20}})
db. user.remove({}) //删除所有集合
for(var i=1;i<=10;i++){db.test.insert({"name":"king"+i,"age":i})} //循环插入10条记录
db.user.find().pretty() //格式化显示查询结果
db.user.find().count() //查询数据条数
db.user.find({"age":5}) /查找age是5的条目
db.user.find({"age":{$gt:5}}) //查找age大于5的条目
db.user.find({"age":{$gt:5}}).sort({"age":1}) //查找age大于5的条目且升序排列
db.user.find({"age":{$gt:5}}).sort({"age":1}) //查找age大于5的条目且升序排列
db.user.find({"age":{$gt:5}}).sort({"age”:-1}) //查找age大于5的条目且降序排列
复制代码

图形化管理工具: Robomongo

nodejs连接数据库: 安装依赖pack: npm install mongoose 如果不安装则报错找不到mongodb e.g:

var  mongodb = require('mongodb');
var  server  = new mongodb.Server('localhost', 27017, {auto_reconnect:true});
var  db = new mongodb.Db('test', server, {safe:true});//连接db
db.open(function(err, db){if(!err){console.log('connect db');// 连接Collection(可以认为是mysql的table)// 第1种连接方式// db.collection('mycoll',{safe:true}, function(err, collection){//     if(err){//         console.log(err);//     }// });// 第2种连接方式db.createCollection('user', {safe:true}, function(err, collection){if(err){console.log(err);}else{//新增数据// var tmp1 = {id:'1',title:'hello',number:1};//          collection.insert(tmp1,{safe:true},function(err, result){//              console.log(result);//          });//更新数据// collection.update({title:'hello'}, {$set:{number:3}}, {safe:true}, function(err, result){//     console.log(result);// });// 删除数据// collection.remove({title:'hello'},{safe:true},function(err,result){//                   console.log(result);//               });// console.log(collection);// 查询数据var tmp1 = {title:'hello'};var tmp2 = {title:'world'};collection.insert([tmp1,tmp2],{safe:true},function(err,result){console.log(result);});collection.find().toArray(function(err,docs){console.log('find');console.log(docs);});collection.findOne(function(err,doc){console.log('findOne');console.log(doc);});}});// console.log('delete ...');// //删除Collection// db.dropCollection('mycoll',{safe:true},function(err,result){//           if(err){//         console.log('err:');//         console.log(err);//     }else{//         console.log('ok:');//         console.log(result);//     }//       });}else{console.log(err);}
});
复制代码

mongodb 通过 mongoose来建模

1.Schema(模式定义) e.g.:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var MovieSchema = new Schema({director: String,title: String,language: String,country: String,summary: String,flash: String,poster: String,year: Number,meta: {createAt: {type: Date,default: Date.now()},updateAt: {type: Date,default: Date.now()}}
});MovieSchema.pre('save', function(next) {if (this.isNew) {this.meta.createAt = this.meta.updateAt = Date.now();}else {this.meta.updateAt = Date.now();}next();
});MovieSchema.statics = {fetch: function(cb) {return this.find({}).sort('meta.updateAt').exec(cb);},findById: function(id, cb) {return this.findOne({_id: id}).exec(cb);}
};module.exports = MovieSchema;
复制代码

2.Model(编译模型) e.g.:

var mongoose = require('mongoose');
var MovieSchema = require('../schemas/movie');
var Movie = mongoose.model('Movie', MovieSchema);module.exports = Movie;
复制代码

3.Documents (文档实例化)

var mongoose = require('mongoose');
var dbUrl = 'mongodb://localhost/imooc';
mongoose.connect(dbUrl);
复制代码

路由index.js:

var express = require('express');
var router = express.Router();
var Movie = require('../models/movie');/* GET home page. */
router.get('/', function (req, res, next) {Movie.fetch(function (err, movies) {if (err) {console.log(err);}res.render('index', {title: 'imooc首页',movies: movies});});});router.get('/movie/:id', function (req, res, next) {var id = req.params.id;Movie.findById(id, function (err, movie) {if (err) {console.log(err);}res.render('detail', {title: "imooc 详情页",movie: movie});});
});
module.exports = router;复制代码

路由users.js:

var express = require('express');
var router = express.Router();
var Movie = require('../models/movie');
var _ = require('underscore');/* POST new movie. */
router.post('/movie/new', function (req, res, next) {var id = req.body.movie._id;var movieObj = req.body.movie;var _movie;if (id !== "undefined") {Movie.findById(id, function (err, movie) {if (err) {console.log(err);}_movie = _.extend(movie, movieObj);_movie.save(function (err, movie) {if (err) {console.log(err);}res.redirect('/movie/' + movie._id);});});} else {_movie = new Movie({director: movieObj.director,title: movieObj.title,country: movieObj.country,language: movieObj.language,year: movieObj.year,poster: movieObj.poster,flash: movieObj.flash,summary: movieObj.summary,});_movie.save(function (err, movie) {if (err) {console.log(err);}res.redirect('/movie/' + movie._id);});}
});router.get('/movie', function (req, res, next) {res.render('admin', {title: "imooc 后台录入页",movie: {title: '',country: '',year: '',poster: '',flash: '',director: '',summary: '',language: ''}});
});router.get('/list', function (req, res, next) {Movie.fetch(function (err, movies) {if (err) {console.log(err);}res.render('list', {title: 'imooc管理员列表',movies: movies});});
});router.get('/movie/update/:id', function (req, res, next) {var id = req.params.id;Movie.findById(id, function (err, movie) {if (err) {console.log(err);}res.render('admin', {title: "imooc 后台更新页",movie: movie});});
});
module.exports = router;复制代码

【Nodejs六】关于mongodb那些事相关推荐

  1. 通过nodejs插入删除MongoDB数据

    通过nodejs插入删除MongoDB数据 首先确保你已经启动了Mongodb数据库服务(mongoDB默认的端口号是:27017) nodejs端,插入数据代码: var MongoClient = ...

  2. nodejs+express4.0+mongodb安装方法 for Linux, Mac

    废话不多说 1:下载nodejs包 下载地址例如以下:http://www.nodejs.org/download/ 下载source code版本号须要解压后到其文件夹运行./configure,然 ...

  3. mongodb 字符串转bson_大数据存储技术选型(六)--Mongodb专题介绍

    之前我曾有过一次mongodb的介绍,但那是年少无知,对mongo认识得不够充分,所以当时那篇专题介绍只是介绍了一个大概的轮廓就草草敷衍了事了.对此我做了深刻的反省与自我批评.接下来,今天就mongo ...

  4. NodeJS 中的mongoDB设置指定字段的隐藏,查询的时候强制显示指定隐藏的字段

    NodeJS 中的mongoDB设置指定字段的隐藏,查询的时候强制显示指定隐藏的字段 这里使用的是基于RESTful API的规范创建的请求地址 在Schema创建用户的时候可以使用select:fa ...

  5. SpringBoot入门建站全系列(二十六)Mongodb非关系型数据库的使用

    SpringBoot入门建站全系列(二十六)Mongodb非关系型数据库的使用 一.概述 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能 ...

  6. 关于内网linux系统如果安装nodejs,npm,express,mongodb,forever等

    内网的linux系统要安装nodejs以及express等系列的框架,因为系统是局域网和互联网是物理隔离的,所以,没法像官网的安装教程那样直接install了,只能手动安装,这里已经我们自己的linu ...

  7. 安装 express4 linux,nodejs+express4.0+mongodb安装方法 for Linux, Mac

    废话不多说 1:下载nodejs包 下载source code版本需要解压后到其目录执行./configure,然后make && make install; 而binaries的ta ...

  8. 在nodejs中操作mongodb

    3.0文档:http://mongodb.github.io/node-mongodb-native/3.0/ 1.引入依赖包: npm install mongodb --save-dev 2.建立 ...

  9. 四十六、MongoDB数据库学习

    @Author:Runsen 文章目录 MongoDB MongoDB数据模型 库级操作语句 集合操作语句 文档操作 添加文档(数据) 查询文档(数据) 条件查询 修改文档(数据) 删除文档(数据) ...

最新文章

  1. 【事务】特性、安全保障及实现
  2. elasticsearch使用指南之Elasticsearch Document Index API详解、原理与示例
  3. EtherType :以太网类型字段及值
  4. subject.login(token)是如何确认账号密码的_教你如何删除、关闭、注销微信小程序...
  5. 深度学习(莫烦 神经网络 lecture 3) Keras
  6. i2c-toos 交互数据_什么是CD-i(交互式光盘)?
  7. matlab与vc混合编程指导书.doc,vc与matlab混合编程—基于com.doc
  8. Java并发(三)——线程池
  9. 机器学习:理解逻辑回归及二分类、多分类代码实践
  10. linux如何安装zip文件格式,如何在Linux下创建与解压,安装zip, tar, tar.gz和tar.bz2文件...
  11. 十八.搭建Nginx服务器、配置网页认证、基于域名的虚拟主机、ssl虚拟主机
  12. (8)Linux(客户端)和Windows(服务端)下socket通信实例
  13. 非线性微分方程 matlab,用ODE45求解Matlab中微分方程的非线性系统
  14. 【JZOJ5424】【NOIP2017提高A组集训10.25】凤凰院凶真
  15. mysql select if 使用
  16. Frame-Pannel-Button综合
  17. 【PMP】核对单和核查表的区别
  18. 《C++ Primer》第14章 14.3节习题答案
  19. matlab资源管理器,资源管理器怎么打开?打开资源管理器的5种方法
  20. poi 操作Excel 删除行内容和直接删除行(poi3.17测试可用)

热门文章

  1. 质数(素数) 与 加密(密码学上的应用)
  2. word 中 给日文汉字标注假名 。 ( ルビ )
  3. 力扣题目——637. 二叉树的层平均值
  4. 【Kettle】血统分析
  5. pycharm中不能安装bs4的解决方案
  6. 解决无法连接mysql问题
  7. Kali linux 2016.2(Rolling)之 Nessus安装及Plugins Download Fail 解决方法
  8. SQL Server抛出异常信息 RAISERROR
  9. 站点页面Service Unavailable 503的一种解决方法
  10. SpringBoot-文件在线预览解决方案-基于OpenOffice及jacob