文档章节

MongoDB安装测试和简单使用,Mongoose的安装和使用

o
 osc_g8254g7s
发布于 2019/08/19 21:11
字数 1415
阅读 15
收藏 0

精选30+云产品,助力企业轻松上云!>>>

MongoDB安装测试和简单使用

1.先安装MongoDB

2.以管理员身份运行**cmd.exe,**进入dos命令界面,执行下列命令

> mongod --storageEngine mmapv1 --dbpath "d:\mongodb\db" --logpath "d:\mongodb\log\MongoDB.log"

3.测试连接

原来的**cmd窗口不关闭,以管理员身份再开一个cmd窗口**,输入mongo或者mongo.exe,出现如下信息说明测试通过,此时我们已经进入了test这个数据库。

4.**将MongoDB安装为windows服务(重点中的重点)**

当mongod.exe被关闭时,mongo.exe 就无法连接到数据库了,因此每次想使用mongodb数据库都要开启mongod.exe程序,所以比较麻烦,此时我们可以将MongoDB安装为windows服务

以管理员身份运行**cmd**,进入bin文件夹,执行下列命令

mongod --storageEngine mmapv1 --dbpath "d:\mongodb\db" --logpath "d:\mongodb\log\MongoDB.log" --install --serviceName "MongoDB"

 

5.>输入NET START MongoDB

6.>输入mongo

7.关闭服务和删除进程

先 ctrl+c

关闭服务:net stop MongoDB

MongoDB 常用的命令(重点)

显示数据库列表 > show dbs

创建数据库 > use dbname

1. 增加数据(重点中的重点)

db.web.save({"name":"老李"}) 创建了名为web的集合,并新增了一条{"name":"老李"} 的数据

db.web.insert({"name":"ghost", "age":10}) 在web集合中插入一条新数据,如果没有web这个集合,mongodb会自动创建

save()和insert()也存在着些许区别:若新增的数据主键已经存在,insert()会不做操作并提示错误,而save() 则更改原来的内容为新内容。

2. 删除数据(重点中的重点)

1、删除文档

2、删除集合

3、删除数据库

· db.users.remove({}) 删除users集合下所有数据

· db.users.remove({"name": "lecaf"}) 删除users集合下name=”lecaf”的数据

· db.users.drop()或db.runCommand({"drop":"users"}) 删除集合users

· db.runCommand({"dropDatabase": 1}) 删除当前数据库,注意 此处的1没加双引号。

3. 查找数据(重点中的重点)

· db.users.find() 查找users集合中所有数据

· db.users.findOne() 查找users集合中的第一条数据

· db.users.find().pretty() 格式化查询到的数据

4. 修改数据(重点中的重点)

· db.web.update({"name":"a1"}, {$set: {sex:”women”}},true,true) 修改name=a1的数据为sex=1,第一个参数是查找条件,第二个参数是修改内容主键不能修改,第三个参数表示匹配所有符合条件的数据,第四个参数表示修改所有匹配到的数据如图

Mongoose的安装和使用

1.1.1. 安装**mongoose**

npm install mongoose

1.1.2. 连接数据库

使用mongoose连接数据库的前提条件是:

1、mongo数据库已经运行。

2、已经安装了mongoose包

 

var mongoose = require("mongoose");

// 连接字符串格式为mongodb://主机/数据库名

mongoose.connect('mongodb://localhost/student);

 

上面这句的意思是连接到本地的mongodb的student表。

扩展:

// 连接本地mongodb ,本机的ip 127.0.0.1,端口:27017 数据库:student

mongoose.connect("mongodb://127.0.0.1:27017/student",function(err){

if(!err){//如果连接成功,则打印出connected to Mongodb

console.log("connected to Mongodb");

}else{

throw err;//如果连接失败,则抛出异常

}

});

 

1.1.3. 新增数据

先讲解一个概念 Schema:

 

它可以理解为数据库模型骨架,可以看作工厂中模具一样,好比一个茶杯,喝水是茶杯最终的功能,茶杯本身就像是Model,那么茶杯的批量生产是需要靠工厂的模具成型的。Schema不仅定义了文档结构和使用性能,还可以有扩展插件、实例方法、静态方法、复合索引、文档生命周期钩子。

 

Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力 钱的电板

Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对 钱的样板

Entity : 由Model创建的实体,他的操作也会影响数据库 钱

 

 

 

存储数据步骤:定义Schema (骨架) > 创建model(模型)> Entity实例化方法。

var Schema = mongoose.Schema;

//通过Schema创建一个模式NewsSchema

var studentSchema = new Schema({

name: String,

age: String

});

student*Schema 类型有哪些*

 

 

 

//通过模式studentSchema 创建一个模型studentModel

var studentModel = mongoose.model("students",studentSchema );

 

var instance1 = new studentModel ();

instance1.name="tangyan";

instance1.age="18";

//通过save方法保存

instance1.save(function(err){

if (err) {

console.log('保存失败');

return;

}

});

 

1.1.4. 删除数据

思路:

 

1、删除数据首先要知道删除哪一条信息,需要知道信息的id.

2、把对应id的数据查询出来,执行remove方法

假如我们要删除id=”57e24521a755e1154039a403”的数据。

 

var id=”57e24521a755e1154039a403”;

studentQueryModel.findById(id,function(err,doc){

if(!doc){

return next(new NotFound("Doc not found"))

}else{

doc.remove(function(){

console.log('删除成功');

})

}

});

 

1.1.5. 修改数据

修改数据的思路:先把对应id的数据查询出来,对需要修改的字段重新赋值,然后执行save方法保存。

假如我们要修改id=”57e24521a755e1154039a403”的数据。

 

var id=”57e24521a755e1154039a403”;

 

studentQueryModel.findById(id,function(err,doc){

//console.log(doc);

doc.name="xiaotangyan" ;//把name修改为xiaotangyan

doc.save(function(err){

if(!err){

console.log('修改成功');

}else{

throw err;

}

});

});

1.1.6. 查询数据

下面find第一个参数{}里面为空,表示查询所有的数据:

docs表示查询的结果集合,可用于渲染ejs模板引擎。

 

studentQueryModel.find({},function(err,docs){

console.log(docs);

});

2. 需求分析

为了保存网站的数据,通常需要一个数据库。MongoDB和Node.js特别般配,因为MongoDB是基于文档的非关系型数据库,文档是按BSON(JSON的轻量化二进制格式)存储的,增删改查等管理数据库的命令和JavaScript语法很像。如果你在Node.js里访问MongoDB的数据,会有我们是一家人的感觉,特别亲切。

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

PO模式你会吗?自动化测试PO模式分层如何实现?

一、什么是PO模式 全称:page object model 简称:POM/PO PO模式最核心的思想是分层,实现松耦合!实现脚本重复使用,实现脚本易维护性! 主要分三层: 1.基础层BasePage:封装一些最基础的s...

osc_s4e6jr85
27分钟前
5
0
lodash compact & concat

前置 本篇随笔包含 _.compact 和 _.concat 及其依赖的工具函数。 你可能需要一些 JavaScript 基础知识才能看懂一些没有注释的细节。 compact _.compact(array) 创建一个新数组,包含原数组中...

osc_xu7n68ts
28分钟前
3
0
Django快速开发实践:Drf框架和xadmin配置指北

步骤 既然是快速开发,那废话不多说,直接说步骤: 安装Djagno 安装Django Rest Framework 定义models 定义Rest framework的serializers 定义Rest framework的viewsets 配置Rest framework的...

osc_qo2uprmb
29分钟前
7
0
SQL注入原理及代码分析(一)

前言 我们都知道,学安全,懂SQL注入是重中之重,因为即使是现在SQL注入漏洞依然存在,只是相对于之前现在挖SQL注入变的困难了。而且知识点比较多,所以在这里总结一下。通过构造有缺陷的代码...

osc_axrkis5i
30分钟前
11
0
Tomcat启动流程简析

Tomcat是一款我们平时开发过程中最常用到的Servlet容器。本系列博客会记录Tomcat的整体架构、主要组件、IO线程模型、请求在Tomcat内部的流转过程以及一些Tomcat调优的相关知识。 力求达到以下...

osc_5c67s863
31分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部