Mongoose和Mongodb简单入门

一、MongoDB安装启动

简介
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

1. 使用yum安装.
  • 添加yum源
[root@Jelly-Test-32 ~]# vi /etc/yum.repos.d/mongodb-org-3.2.repo 
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
  • 安装MongoDB
[root@Jelly-Test-32 ~]# yum -y install mongodb-org 
  • 启动
[root@Jelly-Test-32 ~]# service mongod start
2. 使用docker安装(强烈推荐)

关于docker的安装和使用可以看我的另一篇文章...

  • 拉取镜像
[root@Jelly-Test-32 ~]# docker pull mongo
  • 创建目录mongo,用于数据存放
[root@Jelly-Test-32 ~]# mkdir -p ~/mongo  ~/mongo/db
  • 运行容器,使用docker镜像
[root@Jelly-Test-32 ~]# docker run -p 27017:27017 -v /root/mongo/db:/data/db -d mongo

命令解释:
-p 27017:27017 :将容器的27017 端口映射到主机的27017 端口
-v /root/mongo/db:/data/db :将主机中当前目录下的db挂载到容器的/data/db,作为mongo数据存储目录,不懂的同学可以去学习一下docker相关知识

到这里我们的MongoDB就安装完成了。

二、使用mongoose进行增删改查

下载mongoose就非常简单啦,进入项目目录执行
[root@Jelly-Test-32 u]# npm install mongoose --save
在文件内使用mongoose

var mongoose = require('mongoose'),
    Schema = mongoose.Schema
mongoose.connect('mongodb://localhost:27017/jelly')//连接MongoDB

Schema —— 一种以文件形式存储的数据库模型骨架,无法直接通往数据库端,也就是说它不具备对数据库的操作能力,仅仅只是数据库模型在程序片段中的一种表现,可以说是数据属性模型(传统意义的表结构),又或着是“集合”的模型骨架。
Model —— 由Schema构造生成的模型,除了Schema定义的数据库骨架以外,还具有数据库操作的行为,类似于管理数据库属性、行为的类。
Entity —— 由Model创建的实体,使用save方法保存数据,Model和Entity都有能影响数据库的操作,但Model比Entity更具操作性。

  • 创建Schema,Model,Entity
//Schema
var StudentSchema = new Schema({
    num: {type: Number,unique: true}, //唯一不可重复
    name: {type: String},
    age: {type: Number}
})
//Model
var StudentModel = mongoose.model('student',StudentSchema)
//Entity
var StudentEntity = new StudentModel({
    num: 1, //唯一不可重复
    name: "jelly",
    age: 22
})
//命令: [Model.create(doc(s), [callback])]
//使用save 
StudentEntity.save(function(error,doc){
  if(error){
     console.log("error :" + error);
  }else{
     console.log(doc);
  }
});

//使用create
StudentModel.create(StudentEntity,function(err,docs){})
//或者
StudentModel.create({
    num: 1,
    name: "jelly" ,
    age: 22
 },function(err,docs){})
//命令: [Model.remove(conditions, [callback])]

StudentModel.remove({num:1},function(err,docs){})//查找num为1的数据删除
//命令: [Model.update(conditions, doc, [options], [callback])]

StudentModel.update({num:1},{name:"cool"},function(err,docs){
})//将num为1的名字改为cool
//命令:[Model.find(conditions, [projection], [options], [callback])]
StudentModel.find({num: 1},{_id:0},function(err,docs){
})//查询num为1的数据,{_id:0}控制返回内容不包含_id

//查询一条数据
//StudentModel.findOne({num: 1},{_id:0},function(err,docs){})  

好了,Mongoose和Mongodb简单入门就到这里结束了。如果有兴趣的同学可以自己查阅资料深入研究,文中如果出现错误还望指正。感谢各位看官

要饭.jpg

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容