2.软文推荐
3.软文推荐
目录: 1、怎么连接mongodb的数据库 2、mongoDB分片集群 3、如何在命令行下操作MongoDB数据库 4、mongodb建立索引&查看索引&删除索引 5、如何打开已经创建的MongoDB数据库 6、如何向MongoDB中插入不重复的数据 怎么连接mongodb的数据库MongoDB是由10gen团队开发的基于分布式存储的开源数据库系统,使用C++编写。MongoDB作为一个文档型数据库,其中数据以键值对的方式来存储。
下面我们来看下MogoDB的基本使用方法。
1、连接MongoDB数据库
使用如下命令来连接MongoDB数据库
mongo
2、查看目前所使用的数据库。
在MongoDB中,想查看使用的是哪个数据库,可以使用如下命令来查看。
db
3、查看有哪些数据库。
在MongoDB中存在着许多个数据库,对于有哪些数据库,可以使用如下命令来查看。
show db
4、创建数据库。
现阶段所存在的数据库如果不能满足要求,可以使用如下命令来创建新的数据库。
use database_name
其中database_name则代表所要创建的数据库名字,下面将演示创建一个名为offcn的数据库。
use offcn
5、删除数据库
当数据库没有作用时,可以将数据库删除从而释放所占用的空间资源。使用如下命令来进行对数据库进行删除,在删除前应该先选中所要删除的数据库。
use offcn
db.dropDatabase()
mongoDB分片集群集群 》 片 》 块 》 文档
一个集群由多个分片组成,一个分片存储了多个块(逻辑上的数据分块),一个快包含了多个文档,文档不是最小的单位,文档存了一个个的字段,一个字段或者多个字段可以组成一个片键
片键决定数据可以分成多少块
配置表里存的数据分布范围是怎么定的?
数据在逻辑上被分成了4块,加入系统存的是公司用户信息,按照年龄来分,18-60,一个年龄一个分块,最大可以分43块,在把块分到多个分片上,但是容易造成22-25的用户数据显得特别大,导致了热点片的情况
片键不是连续的而是通过hash散列到不同的片区,解决了数据不均匀的情况,但是范围查询效率低,需要遍历全部的分片才能满足业务查询,用户的订单系统,按照下单用户id去做hash,这样不同用户的订单数据就会被均匀分到不同的分片,单查某个用户的订单数据是非常高效的,但是根据时间范围去查就要扫描全部分片
根据地域去划分
切割器:可以对某个源分片的数据按chunk去做切割
平衡器:
当某些分片数据不均匀的情况下,平衡器就发挥作用了,他会发出一个命令让切割器去需要移动的分片上去做数据切割,再把数据移动到数据少的分片上。具体的步骤如下:
平衡器向源分片发送moveChunk的命令
源分片收到命令后,会启动自己内部的一个moveChunk命令,如果在数据移动过程中有客户端发来读写请求的话,都会发送到源分片。(因为配置服务器上的元数据还没有改变)
目标片开始向源分片请求将要移动的数据块的文档,准备拷贝文档数据。
当目标分片接收到据块的最后一个文档后,目标分片会启动一个同步进程来检查,是否已经拷贝完全部的文档。
当同步完成后,目标分片会连接配置服务器,更新元数据列表中数据块的地址。
当目标分片完成元数据更新后,源分片就会删除原来的数据块.如果有新的数据块需要移动的话,可以继续进行移动。
配置服务器会通知monogs进程更新自己的映射表。
数据容量日益增长,访问性能降低
如何在命令行下操作MongoDB数据库1、Help查看命令提示
[html] view plain copy
help
db.help();
db.yourColl.help();
db.youColl.find().help();
rs.help();
2、切换/创建数据库
[html] view plain copy
use yourDB;
当创建一个集合(table)的时候会自动创建当前数据库
3、查询所有数据库
[html] view plain copy
show dbs;
4、删除当前使用数据库
[html] view plain copy
db.dropDatabase();
mongodb建立索引&查看索引&删除索引从Robo 3T可视化界面中,去创建mongodb数据表的索引。
1.数据表结构:{_id:value, doc_city:value, doc_province:value, content, judgementId}
2.content字段展开:
3.对content字段里的title/caseType/judgementType建立索引
db.getCollection('chongqing').createIndex({"content.title":1, "content.judgementType":1, "content.caseType":1})
4.让创建索引的过程在后台运行
db.getCollection('chongqing').createIndex({"content.title":1, "content.judgementType":1, "content.caseType":1},{background:true})
5.查询集合索引
db.getCollection('chongqing').getIndexes()
6.查看索引集合大小
db.getCollection('chongqing').totalIndexSize()
7.删除集合所有索引
db.getCollection('chongqing').dropIndexes()
8.删除集合指定索引
db.getCollection('chongqing').dropIndex('索引名')
如何打开已经创建的MongoDB数据库1)列出当前的数据库
MongoDB shell version: 1.8.1
connecting to: test
show dbs --
admin 0.03125GB
local (empty)
可以使用show dbs来列出当前有多少个数据库,上面看到的是有两个,分别是admin和local。
2) 定义新的数据库名
我们通过使用“use new-databasename”的语法去使用一个新的数据库,注意,即使你的数据库还没建立起来,依然可以这样使用,因为mongodb会在真正插入了数据后,才会真正建立起来。
use mkyongdb
switched to db mkyongdb
show dbs
admin 0.03125GB
local (empty)
注意,在use mkyongdb后,mkyongdb实际上还没真正建立起来,只是表明目前是在使用mkyongdb了。
3)保存数据
定义一个collection,名为“users”,然后插入数据,如下:
db.users.save( {username:"mkyong"} )
db.users.find()
{ "_id" : ObjectId("4dbac7bfea37068bd0987573"), "username" : "mkyong" }
show dbs --
admin 0.03125GB
local (empty)
mkyongdb 0.03125GB
可以看到,用db.users.find()可以找出已插入的数据。这个时候,名为“users”的collection已经建立起来了,同时,数据库mkyongdb也建立起来了。
如何向MongoDB中插入不重复的数据每一条数据包含三项内容,
比如:mobile_num, name, time.
这三项数据组合在一起不能有重复的数据,但是单独的一项,比如mobile_num可能会有很多重复。
1
目录:1、如何给企业搭建云服务平台,并分析云服务给企业带来哪些效益2、中小企业数字化转型的第一步:先上云3、为什么中小企业需要...