mongodb

1、mongodb是什么?


MongoDB是基于分布式文件存储的数据库,基于c++编写的以键值对为核心的数据存储。

2、安装使用


网上有很多,这里推荐几个
- 【1】mongodb入门配置(配置成功说的图片放的有点问题)
- 【2】w3菜鸟mongodb教程(说明了一些常见的语法知识)
- 【3】出现mongod.exe不是命令,参考这个配置环境变量
- 【4】确定是否配置成功可以参考这个

说下我遇到的问题
1、首先是没有环境变量
添加环境变量,计算机—属性—高级系统设置—环境变量
2、一直重复提示log文件重复
当再次启动mongodb服务的时候,不要再把–logpath添加上去了,
3、执行mongo的时候出现

  [main] Hotfix KB2731284 or later update is not installed, will zero-out data files

不知道什么意思,也能运行成功,尚未解决
4、每次启动mongodb服务很繁琐,按照W3菜鸟上讲的也不行。
最初是建立bat文件,新建.bat文件,把e:/mongodb/bin/mongod.exe --dbpath e:/mongodb/data/db 编辑进去。每次使用mongodb的时候,像使用软件一样双击就好。但是此方法不能把命令行窗口给关了。
5、不使用bat文件,添加windows服务有问题,
可能是我方法不对,命令行执行这句就行了e:\mongodb\bin>mongod.exe--dbpath=e:\mongodb\data\db --install --serviceName "MongoDB" 之后记得要启动该服务,这个可以把命令行窗口给关了

//注意,删除的时候要用管理员运行 cmd 
启动MongoDB:net start "MongoDB"
停止MongoDB:net stop "MongoDB"
删除MongoDB:sc delete "MongoDB"

最后关机重启之后,MongoDB服务自动运行,且启动,等于是不用管了,这个好,前辈大牛的方案赞!!
* 最后可以使用mongodb shell来查看shell下的数据库,初步使用 *

了解mongodb的基本概念及操作


理解基础概念这种死知识,还是到比较系统的站点比较好。我看的W3菜鸟的mongodb教程

mongodb概念
多的不多说,之前没有学过关系型数据库,照着表 行 列——集合 文档 字段(键值对)来理解了。
基本的操作,增删改查之类的了。mongodb的机制就是直接使用,有就有,没有就创建。创建完成后,记得插入一个文档之后,才能看到我们建立的数据库。
这部分就不多说了,直接看w3菜鸟了

直接上mongose

NodeJS的流行,离不开丰富的中间件支持,对于操作Mongoose的中间件,我推荐“mongoosejs”, 官网称之为:“Mongoose ODM”

关于orm和odm:

ORM:Object Relational Mapping,对象关系映射
ODM:Object Document Mapping,对象文档映射
其实两者知识技术名词上的区别,表象是一样的,都是对象和数据库的映射罢了

  • Mongoose是什么?

Mongoose是MongoDB的一个对象模型工具,是基于node-mongodb-native开发的MongoDB nodejs驱动,可以在异步的环境下执行。同时它也是针对MongoDB操作的一个对象模型库,封装了MongoDB对文档的的一些增删改查等常用方法,让NodeJS操作Mongodb数据库变得更加灵活简单。

  • Mongoose能做什么?

Mongoose,因为封装了对MongoDB对文档操作的常用处理方法,让NodeJS操作Mongodb数据库变得easy、easy、So easy!

在我们对mongodb有了一些简单的认识之后,通过mongose对象模型工具来快速操作mongodb数据库文档。

理解三大概念:Schema Model Entity

  1. Schema:数据库集合的模型骨架,或者是数据属性模型传统意义的表结构。

  2. Model :通过Schema构造而成,除了具有Schema定义的数据库骨架以外,还可以具体的操作数据库。

  3. Entity:通过Model创建的实体,它也可以操作数据库。

var mongoose=require('mongoose');
var db=mongoose.connect('mongodb://localhost:27017/blog');
db.connection.on('error',function(error){
    console.log('数据库连接失败:'+error);
});
db.connection.on('open',function(){
    console.log('----------数据库连接成功-----------');
})

// 创建Schema,仅是个模型,不具备操纵数据库的能力
var UserSchema = new mongoose.Schema({
    name:{type:String},
    age:{type:Number,default:0},//类型,以及默认值
    time:{type:Date,default:Date.now},
    email:{type:String,default:''}
});

//创建Model,能操纵数据库了,类似于管理数据库属性、行为的类,通过Model进行增删改查
var UserModel = db.model('user',UserSchema);//user为数据库集合名,集合的Schema对象
var UserEntity = new UserModel({
    name:'Lenka',
    age:36,
    email:'1129103770@qq.com'
});


UserEntity.save(function(err,doc){
    if(err){
        console.log('error:'+err);
    }else{
        console.log(doc);
    }
})
//创建成功后,Schema就变成Model和Entity的公有属性
//console.log(UserEntity.name);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值