你的位置:首页 > 数据库

[数据库]mac上安装mongoDb以及简单使用


年初粗略学习了下node,这好几个月没玩,突然发现已经忘完了,还是简单记录下基本知识,方便再次使用时资料查找。

一、mongoDb安装

在mac上安装了brew的情况下,可以直接执行命令

brew install mongodb,在mac系统中往往因为需要写入权限而要加入sudo

然后等几分钟就安装好了

1、mongoDb启动  

第一个终端窗口输入 sudo mongod --config /usr/local/etc/mongod.conf

然后在第二个终端窗口输入  mongo

2、mongoDb关闭

方式一:在第一个窗口直接按  control+C

方式二:在第二个窗口切换数据库到admin  use admin  然后执行  db.shutdownServer({force : true}); 

3、mongoDb修复

有时mongoDb会因为一些错误而无法启动,这时就要对其进行修复

mongod --repair

 

二、mongoDb常用语句

1、查询库、查询表

show dbs  —  查询所有的数据库

show collections   —  查询当前数据库下的所有数据表

 

2、建库和删库 

use myDbs  —  建立一个名为myDbs的数据库,当这个库存在时则是切换到这个数据库中去

use myDbs

db.dropDatabase();  —  这两句是删除这个数据库

 

3、建表和删表

表操作都是要先到一个数据库中去,通过use方法

db.myTable.insert({name:’hf’,age:20});  —  在mongodb中在插入数据时即创建了改表,此时创建的是名为myTable的数据表

db.myTable.drop();  —  删除myTable这个数据表

 

4、单表的增删改

db.myTable.insert({name:’hahaha’,age:12});  —  新增

db.myTable.update({name:’hf’},{$set:{age:25}})  —  修改,此处的操作相当于关系数据库中的 update myTable set age = 25 where name = ‘hf’

db.myTable.remove({name:’hf'});  —  删除,此处相当于关系数据库中的 delete myTable where name = ‘hf’

 

5、查询

db.myTable.find();  —  查询myTable中的所有数据

db.myTable.find().sort({age:1})  —  根据age升续

db.myTable.find().count();  —  查询

 

三、mongoose及其基本使用

  由于mongodb上手方便,所以经常作为nodeJS建站的数据库,而mongoose则是NodeJS中操作mongodb一个工具库。在mongoose中存在这么几种链接、调用方式主要包括Schema、Model、Entity这3种操作类,其中Schema则是以数据类型为形式的实体,它不具备操作数据库的能力,但是它定义了操作数据表中元素的名称和类型;而Model则是单个表的实体,通过表的名字以及Schema中标注的类型将一个表进行实例化;那么最后一个Entity可以认为是表中单行的实例对象,可以对单行进行简单的新增删改查的操作。

1、建立链接和Schema、Model

var mongoose = require(‘mongoose’);/*开始获取数据库连接,此处部分为固定写法, *其中myinfo是要操作数据库的名称*/var con = mongoose.connect(‘mongodb://localhost/myinfo');/*获取mongoose全局的Schema对象,方便对多个表进行实例化*/var sche = mongoose.Schema;/*构建所需表的Schema,此处就构建了一个stu表的文件*/var stuSchema = new sche({ name:String, age:Number});/*构建表所需的模型 Model*/var stuModel = con.model(’Stu’,stuSchema); 

 

2、新增

方式一:

/* 新增,新增操作需要构建一个表单行实例*/var stuEntity = new stuModel({name:’hf’,age:2});stuEntity.save(function(err){…});

方式二:

/* 新增,通过Model新增*/var json = {name:’hf’ , age:1};stuModel.create(json , function(error){…})

 

2、修改

var param = {name:’hf’};var update = {$set:{name:’sfa’,age:26}};stuModel.update(param , update , function(error){...})

 

3、删除

var param = {name:’hf’};stuModel.remove(param , function(error){...})