MongoDB下载安装及简单使用教程

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

  • 特 点
    1. 高性能
    2. 易部署
    3. 易使用

选择自己要下载的版本MongoDB官网
在这里插入图片描述

配置

1、下载完之后就是配置的问题了

选择一个盘符,新建一个文件夹用于存放数据库文件,在这里我选择的是在 D:\mongodb 盘的根目录下新建一个名为 data 的文件夹,然后再在这个data文件夹下建立一个名为 db 和一个名为 log 的文件夹,最后在 log 文件夹下建立一个名为 mongodb.log 的文件
在这里插入图片描述

2、将 MongoDB 安装目录下的 bin 目录添加到环境变量 Path 中,相信配置过jdk环境的朋友们都知道应该怎么做了,这里就不详细讲了,添加到path之后验证一下是否配置好了

win+R打开cmd输入mongo -help,出现以下信息就证明环境变量配置好了

在这里插入图片描述

3、接下来就是配置启动服务了

以管理员的身份打开cmd,输入以下代码,注意根据自己的安装路径配置

mongod --logpath "D:\mongodb\data\log\mongodb.log" --logappend --dbpath "D:\mongodb\data\db" --directoryperdb --install

启动服务

1、配置启服务就是为了方便启动服务和关闭服务,那么具体是怎么启动服务的呢?代码很简单
net start MongoDB #开启服务

在这里插入图片描述

既然开启服务是start了,那关闭服务就是
net stop MongoDB #关闭服务

在这里插入图片描述

2、MongoDB常用命令:

开启服务之后就可以使用MongoDB数据库了,下面就举几个简单的例子
在这里插入图片描述

这里要说一下的是test是自带的一个数据库,并不是自己创建的

以下命令是必须掌握的:
db	
显示当前的数据库名称

show dbs	
显示当前服务器下数据库(非空的数据库)列表

use test	
如果test数据库不存在,则创建test数据库
如果test已存在,则切换到test数据库

show collections	
显示当前数据库下所包含的集合(表)列表

db.users.insert({name:'zhangsha'})	
向users集合中插入数据
如果users集合存在,则直接插入数据,如果不存在,则创建users集合再插入数据

db.createCollection('products')
创建一个空集合products

db.products.insert([{name:'lishi'},{name:'wangwu'}])		
一次插入多个数据

db.products.find()
查询products集合中所有的数据

db.products.find({name:'苹果手机'})
查询stu集合中name='苹果手机'的数据

db.products.find({name:{$eq:'苹果手机'}})
同上,$eq=>等号,建议使用上面的方式,易记,易输入
eq = equal

db.products.find({price:{$gt:18}})
查询stu集合中age>18的数据  
 
把$gt换成如下的符号试试:
$gt=>大于   great
$gte=>大于等于 great equal
$lt=>小于   less than
$lte=>小于等于 less than equal
$ne=>不等于  not equal
$in=>在范围内
$nin=>不在范围内
以上几个符号格式总结为:{ field: {符号: value}}

db.products.find({name:/^华为/})
查找stu集合中name域中以“华为”字符的开头的数据

db.products.find({name:{$in:['手机1','手机2']}})
查询stu集合中name='手机1'和name='手机2'的数据
$in=>在范围内
$nin=>不在范围内
以上两个符号格式为:{ field:{符号:[value1,value2,....]}}

db.products.find({name:"华为手机",price:800})
查找name="华为手机"并且price:800的数据

db.products.find({$or:[{name:'华为手机'},{price:{$lt:1000}}]})
查询products集合中name='华为手机' 或者 price<1000的数据
$or=>或者  注意$or:[{},{},....]
$and=>并且  格式同$or, 例:{$and:[{},{},....]}
$nor=>not or 与$or相反, 格式同$or

db.products.find({price:{$not:{$gt:100}}})
查询products集合中price<=100的数据,不存在price属性的数据也会查询出来
$not=>取反 

db.products.find({price:{$exists: true}})
查询products集合中包含域名称为price的数据

db.products.find({name:{$type:2}})
查询products集合中name属性为字符串类型的数据

db.products.find({
	$where: function(){
		return this.name == '华为手机'
	}
})
查询products集合中name='华为手机’的数据

db.products.find({
	$where: function(){
 		return  this.name.indexOf('华为手机') > -1;
	}
})
查询products集合中name域中包含“华为手机”字符的数据

db.products.update({name:'华为手机'},{$set:{price:2000}},{
	upsert: true,
	multi:false
})
把products集合中name='华为手机'的那条数据,把price属性设置成2000,其它属性保留
$set是指更改的属性列表,不在列表中其他属性会被保留,如果不加此符号,其它属性会被丢弃(_id属性比较特殊,不会丢失)
upsert:true如果没有符号条件的更新时,则插入一条,为false时,则不会插入, 默认是false
multi:false一次只能更新一条数据,为true时,可更新多条,默认是false

db.students.remove({})
清空集合students

db.products.remove({name:'abc'})
删除products集合中name='abc'的数据,注意,即使把集合products中的所有数据都删除了
products集合仍然存在, remove()是用来删除数据的,而drop()不仅会删除数据,还会把
集合的结构给删除

db.products.drop()
把stu集合彻底从当前数据中删除,集合stu不再存在,注意与remove()的区别

db.dropDatabase()
删除当前数据库

db.users.distinct('name')
查询users集合中不重复的name属性,返回的是数组

db.stu.count({name:'zhangshan'})
查询stu集合中name='zhangshan'的数据数量

db.stu.find().limit(5)
查询stu集合中前5条数据

db.stu.find().skip(5)
查询stu集合中跳过前5条后的数据

db.stu.find().sort({name:1})
查询stu集合中的全部数据,并按name属性正序排列  注:1:正序 -1: 倒序

由于mongodb的api接口方法很多,除以上命令外,其他的命令请多看官方文档
要求:根据官方文档中的方法原型,能够操作相应的方法

正在尝试写博客,把会的分享给你们,如有写的不好的地方,希望指点一下,谢谢!

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值