MongoDB之用户管理
在MongoDB里面默认情况下,只要是进行连接都可以不使用用户名和密码,因为要想让其起作用,就必须具备以下两个条件: ● 条件一:服务器启动的时候打开授权认证。 ● 条件二:需要配置用户名和密码。但是需要明确的是,如果要想配置用户名和密码,一定是针对一个数据库的,例如现有要创建的是stone数据库用...
MongoDB之GridFS
在MongoDB里面支持大数据的存储(例如图片、音乐、各种二进制数据),但是这个做法需要用户自己进行处理,使用“mongofiles”命令完成。1、利用命令行进入到图片所做的路径[root@D2-LZY245 ~]# cd /root/2、将文件保存到文件库之中[root@D2-LZY245 ~]# mongofiles put Tulips.jpg2017-08-17T11:01:24.787+0800 ...
MongoDB之固定集合
所谓的固定集合是规定集合大小,如果要保存的内容超过了集合的长度,那么会采用LRU的算法(最近最少使用原则)将最早的数据移出,从而保存新的数据。默认情况下一个集合可以使用createCollection()函数创建,或者使用增加数据后自动创建,但是如果要想使用固定集合,就必须明确创建一个空集合。范例:创建一个空集合(固...
MongoDB之聚合
MongoDB的产生背景是在大数据环境,所谓的大数据实际上就是信息的收集汇总。那么就必须存在信息的统计操作,而这样的统计操作就称为聚合(分组统计就是一种聚合操作)。1、取得集合的数据量对于集合的数据量而言,在MongoDB里面直接使用count()函数就可以完成了。范例:统计emp表中的数据量> db.emp.count();8范例...
MongoDB之索引(地理信息索引)
地理信息索引分为两类:2D平面索引,2DSphere球面索引。在2D索引里面基本上能够保存到信息就是坐标,也就是经纬度坐标。范例:定义一个商铺的集合db.shop.insert({loc:[10,10]});db.shop.insert({loc:[20,10]});db.shop.insert({loc:[10,20]});db.shop.insert({loc:[20,20]});db.shop.in...
MongoDB之索引(全文索引)
在一些信息管理平台上经常需要进行信息模糊查询,最早的时候是在某个字段上实现的模糊查询,但是这个时候返回的信息并不会很准确,因为只能够查A字段或者是B字段,而在MongoDB里面实现了非常简单的全文检索。范例:定义一个新的集合db.news.insert({"title":"stoneA","content":"ttA"});db.news.insert({"title":"stone...
MongoDB之索引(过期索引)
在一些站点会出现若干秒之后信息被删除的情况,例如:手机验证码。那么在MongoDB里面就可以轻松实现过期索引,但是这个时间往往不怎么准确。范例:设置过期索引,10秒后过期> db.phones.createIndex({"time":1},{expireAfterSeconds:10}){ "createdCollectionAutomatically...
MongoDB之索引(唯一索引)
唯一索引的主要目的是用在某一个字段上,使该字段的内容不重复。范例:创建一个唯一索引> db.emp.createIndex({"name":1},{"unique":true}){ "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, ...
MongoDB之索引(简介)
在任何数据库之中,索引都是一种提升数据库检索性能的手段。MongoDB数据库里面依然会存在两种索引创建:一种是自动创建,另外一种是手工创建。范例:重新准备一个新的简单集合。db.emp.drop();db.emp.insert({"name":"赵一","sex":"男","age":30,"sal":1000,"loc":"北京"});db.emp.insert({"name":"钱二","sex":"女",...
MongoDB之游标
所谓的游标就是指的数据可以一行一行的进行操作,非常类似与ResultSet数据处理,在MongoDB数据库里面,对于游标的控制非常简单,只需要使用find()函数就可以返回游标了。对于返回的游标,如果要想进行操作,可以使用两个函数: ● 判断是否有下一行数据:lastNext(); ● 取出当前数据:next()。> var curso...
MongoDB之数据删除
在MongoDB里面数据的删除实际上并不复杂,只需要使用“remove()”。这个函数有两个可选项: ● 删除条件:满足条件的数据被删除。 ● 是否只删除一个数据,如果设置为true或者是1,表示只删除一个范例:删除所有姓名里面带有“刘”的人员,默认情况下会全部删除> db.emp.remove({"name":/刘/})WriteResu...
MongoDB之数据更新(修改器)
对MongoDB数据库而言,数据的修改会牵扯到内容的变更,结构的变更(包含有数组)。所以在进行MongoDB设计的时候就提供有一系列修改器的应用。之前使用的“$set”就是一个修改器。1、$inc:主要针对于一个数字字段,增加某个数字字段的数据内容:语法:{"$inc":{"成员":"内容"}}范例:将年龄为30岁的一个员工的薪水一律1...
MongoDB之数据更新(更新函数)
对于MongoDB而言,数据的更新是一件很麻烦的事情,如果在实际工作当中,真的具有此类的操作支持,那么最好的做法:删掉在插入。在MongoDB里面对于数据的更新操作提供了两类函数:save()、update()如果要修改数据最直接的使用函数就是update()函数,但是这个函数的语法要求很麻烦。语法:db.集合.update(更新条件,新的对...
MongoDB之数据查询(分页显示)
在MongoDB里面的数据分页显示也是符合大数据要求的操作函数:skip(n):表示跨过多少数据行;limit(n):取出的数据行的个数限制。范例:分页显示(第一页,skip(0)、limit(5))> db.emp.find().skip(0).limit(5).sort({"age":-1}).pretty();{ "_id" : ObjectId("599108423...
MongoDB之数据查询(数据排序)
在MongoDB里面数据的排序操作使用“sort()”函数,在进行排序的时候可以有两个顺序:升序(1),降序(-1)。范例:数据排序> db.emp.find().sort({"sal":-1}).pretty();{ "_id" : ObjectId("599108433268c8e84253be2d"), "nam...
MongoDB之数据查询(正则表达式)
如果要想实现模糊查询,那么必须使用正则表达式,使用的是与Perl兼容的正则表达式的形式。如果要想实现正则表达式,则按照如下的定义格式: ● 基础语法:{key:正则表达式}; ● 完整语法:{key:{"$regex":正则标记,"$options":选项}}。对于options主要是设置正则的信息查询的标记: ● “i”:忽略...
MongoDB之数据查询操作
任何数据库之中,数据的查询操作都是最为麻烦的,而在MongoDB数据库里面,对于查询的支持非常到位。语法:“db.集合名称.find({查询条件}[,{设置显示的字段}])”范例:最简单的用法就是直接使用find()函数完成查询> db.info.find();范例:希望查询出url为“www.stone.com”的数据> db.info.find({"url":"www.stone.c...
MongoDB之数据增加操作
只要是数据库那么就绝对离不开最为核心的功能:CRUD,所以在MongoDB里面对于数据的操作也是支持的,但是需要提醒的是,除了增加之外,其它的都很麻烦。1、数据增加使用“db.集合.insert()”可以实现数据的增加操作。范例:增加一个简单数据> use hrswitched to db hr> db.info.insert({"url":"www.stone.com"});Wri...
MongoDB之基本操作
在MongoDB数据库里面是存在有数据库的概念的,但是没有模式(所有的信息都是按照文档保存的),文档的结构就是JSON结构,只不过在进行一些数据处理的时候才会使用到MongoDB自己的一些操作符。1、切换到stone数据库:> dbtest执行 "db" 命令可以显示当前数据库对象> use stoneswitched to db stone> show databases;...
MongoDB之安装并配置
系统环境:[root@D2-LZY245 ~]# cat /etc/centos-releaseCentOS Linux release 7.2.1511 (Core) 如果是RHEL6版本,则需要先升级openssl:[root@oeldb1 ~]# rpm -qa | grep opensslopenssl-devel-1.0.1e-57.el6.x86_64openssl098e-0.9.8e-17.0.1.el6_2.2.x86_64openssl-1.0.1e-57.el6.x86_64安装包及版本:下载地...