探秘mongodb可连接的数据库:连接种类有哪些? (mongodb可以建立的连接数据库)
探秘Mongodb可连接的数据库:连接种类有哪些?
Mongodb是现代应用程序的首选数据库之一,因为它是一个高效的、灵活的文档存储数据库,并且具有良好的性能和可扩展性。为了在不同的环境中使用Mongodb,你需要了解各种连接选项。这篇文章将介绍Mongodb可连接的数据库以及连接的种类。
连接种类
Mongodb支持许多连接种类,包括:
1.本地连接
这是最简单的连接类型,即在本地为应用程序和Mongodb实例建立连接。如果你正在开发一个本地应用程序,这种连接方法是很有用的。本地连接的URI格式为mongodb://localhost:27017,其中localhost是主机名,27017是默认端口号。
2.远程连接
如果你的应用程序和Mongodb实例在不同的计算机上,你需要建立远程连接。远程连接的URI格式为mongodb://username: password @ host:port / database,其中username是Mongodb账户的用户名,password 是该账户的密码,host是远程主机名,port是Mongodb实例的端口号。
3. Replica Set 连接
Replica Set是Mongodb一个非常有用的功能,它能够在多个Mongodb实例之间自动复制数据,并在发生故障时自动主从切换。在连接到一个Mongodb Replica Set时,URI格式为mongodb://username: password @ host:port / database?replicaSet=rs0,其中replicaSet是你的Replica Set的名称。
4.分片连接
分片连接是一种Mongodb扩展功能,它允许你动态划分数据并将其存储在多个物理或逻辑位置上。分片连接的URI格式为:mongodb://mongos1.example.com:27017,mongos2.example.com:27017,mongos3.example.com:27017/myDatabase?replicaSet=myRepl&id=MyShard,其中mongos1.example.com、mongos2.example.com和mongos3.example.com是Mongodb Shard服务器的主机名。replicaSet是每个Shard服务器的副本集名称,id是Shard的标识符。
5. TTL Index 连接
TTL Index是一种特殊的索引类型,可以在指定的时间后自动删除文档。在连接到TTL Index时,URI格式为:mongodb://username: password @ host:port / database?autoIndexExpireAfterSeconds=1800,其中autoIndexExpireAfterSeconds是文档在被删除前的秒数。
本文介绍了Mongodb可连接的数据库以及连接的种类,包括本地连接、远程连接、Replica Set 连接、分片连接和TTL Index 连接。每种连接类型的URI格式不同,你需要根据自己的开发环境选择不同的连接类型。
Mongodb作为一个高度可扩展的文档存储平台,可以方便地扩展,随着数据量和访问量的不断增加。通过了解不同的连接选项,你可以更好地应用Mongodb来满足你的应用程序需求。
相关问题拓展阅读:
- 如何在MongoDB中建立新数据库和
- mongodb 3.2怎么在php中连接
- 如何建立一个含有用户名和密码的mongodb的数据库
如何在MongoDB中建立新数据库和
数据库和(固定除外)不用手动创建,简态如果你连接一个不存在拦腔源的数据库或者,MongoDB会自动创建相应的数圆禅据库和,你可以用命令行或者代码试试。
概念
一定范围的,确定的,可分辨的东西,作为一个整体来看,被称为集,称为集,其中,每个组元素或一种叫做短元件。不同的人物,如阿Q(1)真实的故事出现在(2)全部为大写字母。任何是它自己的子集的关系
收集要素:
集“归属感”和元素之间的关系“不属于”两种。分类
:
工会:属于A或B的元素是属于的元素被称为A和B(套),表示A∪B(或B∪A),读作“A和B”(或“B和A”),即A∪B= {X |x∈A,或x∈B}
路口:属于A和B是属于元素的元素称为A和B的薪酬(套),表示A∩B(或B∩A),读作“A交B”(或“B交A”),即A∩B= {X |x∈A,和x∈ B}
的区别:不属于A和B的一部分元素的元素称为差(套)
说明A和B:空集包含于任何,但不能说“空集属于任何“。
某些特定的对象在一起,就成为一个包含的元素叫做有限集包含的元素称为无限无限数量有限数,空集是不含任何元素的,记Φ。空集是任何的一个子集是真正的任何非空集的子集,没侍余闭有是本毁洞身所有真正传递的一个子集的一个子集的一个子集。
“解释:如果所有的元素都同时设置B元素的,则A被称为B的一个子集,编写的B.如果A是B的一个子集,而A不等于B,?则A被称为B的真子集,编写的B.
集所有男人都是集自然“
中的所有真子集:?
确定性:可确定每个对象是不元素的,没有肯定它不能被设置,如“高同学”,“小的数字”不能构成的。
变化:任何两个元素的是不同的对象。不能被写为{1,1,2},{1,2}应写入。
障碍:{A,B,C} {C,B,A}是同一个。
设置具有以下性质:如果A是包含在B,那么A∩B= A,A∪B=表示B
:枚举法常用和描述方法。
1.枚举法:用于每个有限集,该集列表出来的所有元素,写在括号内,这种表示被称为组枚举法。 {1,2,3,…}
2.描述法:常用的用来表达无限的,对文字,符号或公式,等中的共同财产元素描述,写在括号,其中的方法代表了一个名为描述方法的。 {X | P}(X为P为这个的共同财产元素的一般形式的中的元素),如:正实数少于π的,表示为:{X | 0 卡(A∪B∪C)=卡(A)+卡(B)+卡(C)-card(A∩B)-card(B∩C)-card(C∩A)+卡(A ∩B∩C)
1985年德国数学家,论,领唱者的创始人所讲的道老裂,援引的法律,法律是描述收集的常用方法。点击看详细吸收法
A∪(A∩B)= A
A∩(A∪B)= A
补充法律
A∪CsA= S
A∩CsA=Φ点击看详细【聚焦】
理解藏品,藏品的性质,元素的,它们之间的关系代表的概念。子
收集,运送,以及相配套的意义和用法。掌握术语和符号,用准确的表示语言,研究收集,处理有关数学问题。
的的概念的含义以及这些概念和它们之间的链路之间的差别。
mongodb 3.2怎么在php中连接
表标PHP已经自带了mongo功能,你就可以操作下面的代码(但是你必须有安装mongodb服务器)
一、连接数据库
使用下面的代码创建一个数据库链接
复制代码 代码如下:
listDBs());//能打码银印出数据库数组,看看有几个数据库。
?>
如图:
上图说有一个数据库名字叫local,总大小1个字节,他是空的。看见ok表示运行成功。
现在你可以使用$connection链接来操作数据库了
选择数据库
使用下面的代码来选择一个数据库
复制代誉液码 代码如下:
dbname;
?>
这里的数据库并不一定是一个已经存在的数据库,如果所选择的数据库不存在,则会新建一个数据库,所以在选择数据库的时候,注意一定要填上正确的数据库名
如果拼写错误的话,很有可能会新建一个数据库
复制代码 代码如下:
mybiglongdbname;
//做一些事情
$db = $connection->mybiglongdbnme;
//现在会连上一个新的数据库
?>
获取一个
获取一个跟选择数据库拥有相同的语法格式
复制代码 代码如下:
baz;//选择数据库
$collection = $db->foobar;//选择foobar
//或者使用更简洁的方式
$collection = $connection->baz->foobar;
?>
插入一个文档
多维数组是可以被储存到数据库中的基本单元
一个随机的文档可能是这样
复制代码 代码如下:
“MongoDB”,
“type” => “database”,
“count” => 1,
“info” => (object)array( “x” => 203,
“y” => 102),
“versions” => array(“0.9.7″, “0.9.8″, “0.9.9″)
);
?>
注意:你可迟虚宴以嵌套数组与对象,对象与文档在mongodb中几乎是一样的,你可以使用$doc调用一个文档或对象,但是info字段总是一个对象而不是一个文档,
本约束适用于所有文档
使用MongoCollection::insert()插入一个文档
复制代码 代码如下:
foo->bar;
$collection->insert($doc);
?>
mongodb 的 insert()、save() ,区别主要是:若存在主键,insert() 不做操作,而save() 则更改原来的内容为新内容。
存在数据: { _id : 1, ” name ” : ” n1 ” }
insert({ _id : 1, ” name ” : ” n2 ” }) 会提示错误
save({ _id : 1, ” name ” : ” n2 ” }) 会把 n1 改为 n2 。
使用MongoCollection::findOne()查询文档
为了证明上面那段代码的数据已经插入到数据库里了,我们进行简单的 findOne()操作以得到中的之一个文档数据,这种方法只返回一个文档数据,
这种方法适用于在你的查询语句的时候只匹配一个文档或者你只关心之一条数据
复制代码 代码如下:
findOne();
var_dump( $obj );
?>
你会看到下列结果
复制代码 代码如下:
array(5) {
=>
object(MongoId)#6 (0) {
}
string(7) “MongoDB”
=>
string(8) “database”
=>
int(1)
=>
array (2) {
=>
int(203)
=>
int(102)
}
array(3) {
=>
string(5) “0.9.7″
=>
string(5) “0.9.8″
=>
string(5) “0.9.9″
}
}
注意_id字段自动加载了文档上,MongoDB储存元素中以_以及$开头的都是供内部使用的
添加更多文档
为了做一些更有趣的事情,我们添加更多简单的文档到中,这些文档如下
复制代码 代码如下:
value );
?>
我们可以使用循环相当有效的插入数据
复制代码 代码如下:
insert( array( “i” => $i ) );
}
?>
注意:我们可以插入不同的字段在同一字符集中,在这方面意味着MongoDB拥有非常自由的储存模式
在一个中计算文档的数量
现在我们插入了101个文档(我们用循环插入了100个,之前还插入了一个),我们可以使用count()来看看我们的数据是不是都入进去了
复制代码 代码如下:
count();
?>
这段代码将打印出101
MongoCollection::count() 也可以查询字段数据
使用游标得到中的所有文档
为了得到中的所有文档,我们可以使用 MongoCollection::find()方法,find()方法返回一个 MongoCursor对象,可以让我们重复得到查询所匹配的的文档
复制代码 代码如下:
find();
foreach ($cursor as $id => $value) {
echo “$id: “;
var_dump( $value );
}
?>
这样我们会打印出中的这101个文档,$id就是文档中的_id字段,$value 就是文档本身
为查询规定一个标准
我们可以通过find()方法得到中的文档子集,例如,我们要查询出中i字段为71的文档,我们可以使用下列方法
复制代码 代码如下:
71 );
$cursor = $collection->find( $query );
while( $cursor->hasNext() ) {
var_dump( $cursor->getNext() );
}
?>
我们将打印如下数据
复制代码 代码如下:
array(2) {
=>
object(MongoId)#6 (0) {
}
=>
int(71)
=>
“testCollection”
}
为查询设定一个范围
我们可以通过find()创建一个查询语句以得中的一个子集,例如如果我们得到所有”i”>50的文档,我们可以使用如下代码
复制代码 代码如下:
array(‘$gt’ =>50)); //注意’$gt’两边的单引号
$cursor = $coll->find( $query );
while( $cursor->hasNext() ) {
var_dump( $cursor->getNext() );
}
?>
我们同样可以得到20 array( “\$gt” => 20, “\$lte” => 30 ) );
$cursor = $coll->find( $query );
while( $cursor->hasNext() ) {
var_dump( $cursor->getNext() );
}
?>
我们非常容易漏掉$美元符号,你也可以选择你自定义的符号来代替美元符号,选择一个不会在你的建里面出现的符号例如”:”,在php.ini中加上这么一句话
复制代码 代码如下:
mongo.cmd = “:”
那么上面的代码就可以替换成
复制代码 代码如下:
array( “:gt” => 20, “:lte” => 30 ) );
?>
当然你也可以使用ini_set(“mongo.cmd”, “:”)的方法来改变
创建一个索引
MongoDB支持索引,并且可以很容易的加到一个中,你只要指定某个字段为索引就行了,并且还可以指定 正序索引(1)与 倒序索引(-1)
下面的代码为I创建了索引
复制代码 代码如下:
ensureIndex( array( “i” => 1 ) ); //在”i”上创建了一个索引
$coll->ensureIndex( array( “i” => -1, “j” => 1 ) );//在”i”上创建了倒序索引 在”j”上创建了正序索引
?>
一个完整的简单例子
这个例子展示了如何链接mongodb数据库,如何选择数据库,如何插入数据,如何查询数据,以及关闭数据库链接
复制代码 代码如下:
comedy;
$collection = $db->cartoons;
//添加一个元素
$obj = array( “title” => “Calvin and Hobbes”, “author” => “Bill Watterson” );
$collection->insert($obj);
//修改
$newdata = array(‘$set’ => array(“title” => “Calvin and Hobbes”));
$collection->update(array(“author” => “caleng”), $newdata);
//删除
$collection->remove(array(‘author’=>’caleng’), array(“justOne” => true));
//添加另一个元素,使用不同的格式
$obj = array( “title” => “XKCD”, “online” => true );
$collection->insert($obj);
//查询所有的
$cursor = $collection->find();
//重复显示结果
foreach ($cursor as $obj) {
echo $obj . “\n”;
}
// 关闭链接
$m->close();
?>
输出结果为
复制代码 代码如下:
Calvin and Hobbes
如何建立一个含有用户名和密码的mongodb的数据库
方法如下:
创建数据库
use tt
这样就创建了一个数据库,如果什么都不操作离开的话,这个库就会被系统删除.所以还要执行下面的命令:
db.usr.insert({‘name’:’tompig’});
db.usr.insert({‘name’:’tompig1′,’id’:1});
随便整了2个表,这个无所谓的,反正要导入表的话就删除掉这2个就可以了,目前只是想让数据库保持住.
然后使用命令查看是否有保存tt这个数据库:
show dbs
3.配置用户
use tt
db.addUser(‘mongodb’,’123456′);
mongodb是用户名,123456是密码.
好了,这样一个数据库和对这个数据库配置用户就完成了.
mongodb常用命令:
1、Help查看命令提示
help
db.help();
db.yourColl.help();
db.youColl.find().help();
rs.help();
2、切换/创建数据库
use yourDB; 当创建一个(table)的时候会自动创建当前数据库
3、查询所有数据库
show dbs;
4、删除当前使用数据库
db.dropDatabase();
5、从指定主机上克隆数据库
db.cloneDatabase(“127.0.0.1”); 将指定机器上的数据库的数据克隆到当前数据库
6、从指定的机樱明器上复制指定数据库数据到某个数据库
db.copyDatabase(“mydb”, “temp”, “127.0.0.1”);将本机的mydb的数据复制到temp数据库中
7、修复当前数据库
db.repairDatabase();
8、查看当前使用的数据库
db.getName();
db; db和getName方法是一样的效果,都可以查询当前使用的数据库
9、显示当前db状态
db.stats();
10、当前db版本
db.version();
11、查看当前db的链接机器地址
db.getMongo();
Collection聚集
1、创建一个聚集(table)
db.createCollection(“collName”, {size: 20, capped: 5, max: 100});
2、得到指定名称的聚猛槐集(table)
db.getCollection(“account”);
3、得到当前db的所有聚集
db.getCollectionNames();
4、显示当前db所有聚集索引的状态
db.printCollectionStats();
用户相关
1、添加一个用户
db.addUser(“name”);
db.addUser(“userName”, “pwd123”, true); 添加用户、设置密码、是否只读
2、数据库认证、安全模式
db.auth(“userName”, “123123”);
3、显示枝颂友当前所有用户
show users;
4、删除用户
db.removeUser(“userName”);
其他
1、查询之前的错误信息
db.getPrevError();
2、清除错误记录
db.resetError();
太小气了,还是给你简单说一说吧,下边是我之前研究mongodb时候做的笔记中的一点部分。
mongoDB默认用户认证是关闭的。
修改 /etc/mongod.conf 文件。mongoDB默认情况下任何客户端都可以连接27017端口,且没有认证,默认情况下没有管理员帐户。通过修改这个配置文件可以更改为登陆时进行权限认证。唯租
mongoDB中如宴颂果想要给某个数据库创建一个用户,需要首先进入该数据库,然后使用addUser命令。在这里也可以将用户设置为只读(db.addUser(“jack”,”jack”,true),第三个参数表示是否时“只读用户”)。
要使用超级管理员,需要先连接admin数据库并登陆管理员帐户,然后连接其他数据库就可以行使管理员权限。
用户信息保存及认证过程
类似MySQL将系统用户信息保存在mysql.user表。MongoDB也将系统用户的username、pwd保存在admin.system.users中。其中pwd = md5(username + “:mongo:” + real_password)。这本身并没有什么问题。username和:mongo:相当于对原密码加了一个salt值,即使攻击者获取了数据库中保存的md5 hash,也没法简单的从彩虹表中查出原始密码。
权限管理常用命令
1. #进入数据库admin
use admin
2. #增加或修改用户密码
db.addUser(‘name’,’pwd’)
3. #查看用户列表
db.system.users.find()
4. #用户认证
db.auth(‘name’,’pwd’)
这一个返回1就认证成功了,只有认证成功才能对数据库进行操作
5. #删除用户
db.removeUser(‘name’)
6. #查看所有用户
show users
7. #查看所有数据库
show dbs
8. #查看所有的collection
show collections
9. #查看各collection的状态
db.printCollectionStats()
10. #查晌山郑看主从复制状态
db.printReplicationInfo()
你想用哪种数据库?SQL SERVER?还是oracle?
关于mongodb可以建立的连接数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
编辑:一起学习网
标签:数据库,代码,文档,元素,子集