mgo 连接mongodb数据库求和应该怎么做

mgo 连接mongodb数据库求和应该怎么做,第1张

安装完成mongo客户端后,点击mongo的图标,启动运行程序

打开面板后在界面的左上角有一个可点击的菜单connect连接按钮,这里相信不用我说读者就知道。

点击后如下图,如果读者已经配置过数据库连接会话信息,那么就会和下图一样,显示出配置的连接数据库会话名。

读者需要选择一个数据库的连接,然后点击下方的Connect连接

如果读者没有配置连接需要点击下图红色方框选中的“+”号,点击进行创建一个连接。

下面就是配置数据库的连接信息,IP、端口、口令等

连接进入后可以看到对应的数据库中所有的表,将鼠标移至需要的表格,然后鼠标右键,选择view(视图)

打开后选择第二个视图--Table View,表格视图,就可以看到数据库表中的数据和字段名称。

有效的数据模型是为应用服务的,设计构架的关键问题是文档模型适合使用嵌入式模型(embed)还是使用引用模型(references)。

嵌入式数据模型(Embedded Data Models)

在MongoDB中,你可能将相关数据嵌入到一个单一结构或文档,这些模式通常被称为“非正规”模型,但是它充分利用了MongoDB富文档模型的有点。

嵌入式数据模型允许应用程序存储相关的信息在一条数据库记录中,这样应用程序可能需要更少的查询和更新来完成常规的 *** 作。

use dbName

dbcreateUser({user:"dbUser",pwd:"blahblah",roles:[{role:"dbOwner",db:"dbName"}]})

couldn't add user: not authorized on dbName to execute command

我才疏学浅,稍微给点拙见。

1、如果是突出“大型”,mongodb3确实适合。mongodb3改善了集群的能力。

2、从服务器稳定性方面来说,mongodb3确实不错。

3、安全性方面的考虑,mongodb3是能控制安全性的。不一定全部都先存内存,也可以强制存盘的。

凡事有好必有坏,以上3点的代价是成本也相对增加。

SNS虽然总体比不过MMORPG,但是也有相当大的用户群。作为游戏来讲,做得好的话,应该很容易达到大数据级别。所以从这个角度来看,mongodb3还是很必要的。

不过,我看你的意思是想部分使用mongodb来做。如果使用2种以上数据库。

1、在技术方面,数据不好统一维护,势必拖慢开发效率。

2、成本也相对提高,如果是mongodb和sql一起的话,那么在大数据方面,sql将无法承受为了应付大数据而付出的高昂费用。或者sql只承担少部分任务,但是sql很可能要另外配置机器,这也是提高了成本。因为mongodb偏重内存,而sql很可能偏重磁盘容量。

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

mongoDB

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

MongoDB是一个面向文档的数据库,目前由10gen开发并维护,它的功能丰富,齐全,完全可以替代MySQL。在使用MongoDB做产品原型的过程中,我们总结了MonogDB的一些亮点:使用JSON风格语法,易于掌握和理解:MongoDB使用JSON的变种BSON作为内部存储的格式和语法。针对MongoDB的 *** 作都使用JSON风格语法,客户端提交或接收的数据都使用JSON形式来展现。相对于SQL来说,更加直观,容易理解和掌握。Schema-less,支持嵌入子文档:MongoDB是一个Schema-free的文档数据库。一个数据库可以有多个Collection,每个Collection是Documents的集合。Collection和Document和传统数据库的Table和Row并不对等。无需事先定义Collection,随时可以创建。Collection中可以包含具有不同schema的文档记录。这意味着,你上一条记录中的文档有3个属性,而下一条记录的文档可以有10个属性,属性的类型既可以是基本的数据类型(如数字、字符串、日期等),也可以是数组或者散列,甚至还可以是一个子文档(embeddocument)。这样,可以实现逆规范化(denormalizing)的数据模型,提高查询的速度。图1MongoDB是一个Schema-free的文档数据库图2是一个例子,作品和评论可以设计为一个collection,评论作为子文档内嵌在art的comments属性中,评论的回复则作为comment子文档的子文档内嵌于replies属性。按照这种设计模式,只需要按照作品id检索一次,即可获得所有相关的信息了。在MongoDB中,不强调一定对数据进行Normalize,很多场合都建议De-normalize,开发人员可以扔掉传统关系数据库各种范式的限制,不需要把所有的实体都映射为一个Collection,只需定义最顶级的class。MongoDB的文档模型可以让我们很轻松就能将自己的Object映射到collection中实现存储。图2MongoDB支持嵌入子文档简单易用的查询方式:MongoDB中的查询让人很舒适,没有SQL难记的语法,直接使用JSON,相当的直观。对不同的开发语言,你可以使用它最基本的数组或散列格式进行查询。配合附加的operator,MongoDB支持范围查询,正则表达式查询,对子文档内属性的查询,可以取代原来大多数任务的SQL查询。CRUD更加简单,支持in-placeupdate:只要定义一个数组,然后传递给MongoDB的insert/update方法就可自动插入或更新;对于更新模式,MongoDB支持一个upsert选项,即:“如果记录存在那么更新,否则插入”。MongoDB的update方法还支持Modifier,通过Modifier可实现在服务端即时更新,省去客户端和服务端的通讯。这些modifer可以让MongoDB具有和Redis、Memcached等KV类似的功能:较之MySQL,MonoDB更加简单快速。

 修改 /etc/mongodconf 文件。mongoDB默认情况下任何客户端都可以连接27017端口,且没有认证,默认情况下没有管理员帐户。通过修改这个配置文件可以更改为登陆时进行权限认证。

mongoDB中如果想要给某个数据库创建一个用户,需要首先进入该数据库,然后使用addUser命令。在这里也可以将用户设置为只读(dbaddUser("jack","jack",true),第三个参数表示是否时“只读用户”)。

要使用超级管理员,需要先连接admin数据库并登陆管理员帐户,然后连接其他数据库就可以行使管理员权限。

用户信息保存及认证过程

类似MySQL将系统用户信息保存在mysqluser表。MongoDB也将系统用户的username、pwd保存在adminsystemusers集合中。其中pwd = md5(username + “:mongo:” + real_password)。这本身并没有什么问题。username和:mongo:相当于对原密码加了一个salt值,即使攻击者获取了数据库中保存的md5 hash,也没法简单的从彩虹表中查出原始密码。

权限管理常用命令

1 #进入数据库admin

use admin

2 #增加或修改用户密码

dbaddUser('name','pwd')

3 #查看用户列表

dbsystemusersfind()

4 #用户认证

dbauth('name','pwd')

这一个返回1就认证成功了,只有认证成功才能对数据库进行 *** 作

5 #删除用户

dbremoveUser('name')

6 #查看所有用户

show users

7 #查看所有数据库

show dbs

8 #查看所有的collection

show collections

9 #查看各collection的状态

dbprintCollectionStats()

10 #查看主从复制状态

dbprintReplicationInfo()

以上就是关于mgo 连接mongodb数据库求和应该怎么做全部的内容,包括:mgo 连接mongodb数据库求和应该怎么做、用mongodb怎么设计论坛这样的数据库、MongoDB 新建数据库后创建新数据库的用户时报错:not authorized等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9443273.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存