MongoDB简介与基本查询操作命令

MongoDB是一个非关系型的数据库,以键值对的形式储存,其中键值对可以嵌套下去。因此相对传统的关系型数据库来说,MongoDB更加的灵活,当然缺点就是由于非结构化的形式导致解析的时候相对复杂。另外,MongoDB已经支持了很多开源的生态,如可以集成Hadoop生态环境等,在扩展性上也有很好的支持。

 

MongoDB三大基本概念:

1. 文档(Document)——相当于关系型数据库中的行

文档是以key-value(键值对)为基本存在形式的有序集,它是以BSON(Binary JavaScript Object Notation)的形式表现,这是一种类似于JSON的格式。文档的形式可以是多种多样的,key可以不同,但是key中不能有空字符以及不能是.(一点)和$(美元符号),value也可以不同,甚至value可以内嵌另外一个文档,这种内嵌性极大地提供了灵活性和丰富了文档的多样性。

2. 集合(Collection)——相当于关系型数据库中的表

集合就是一组文档,它是动态模式的,也就是说在一个集合中,文档类型可以是多种多样的。什么是多种多样的?比如它并不像关系型数据库一样,字段名要一致,而是无拘无束,也就是说什么类型,什么形式的文档都可以放进去同一个集合中(^_^点都德)。但是,尽管MongoDB并不强制要求一个集合放一类的文档,但是毕竟不同类型的文档放在同一集合中会导致数据管理混乱,更重要的是会影响性能,在利用索引进行查询的时候,同一类型的文档往往能更有效地查询,这些无形问题使得我们自觉地把不同类型的文档放到不同的集合中。另外,集合命名的时候不能有空字符,不能用"system."开头,以及有$符号,按照惯例一般会有子集合来组织数据。比如说一个博客可以有发表的文章或者作者两种文档数据,这样这种数据可以分别以blog.posts和blog.authors来命名集合。

3. 数据库(Database)——相当于关系型数据库中的数据库

数据库是存放集合的地方,每个数据库有独立的权限,不同的数据库放置在不同的文件中。按照经验,一般一个数据库对应一个应用的所有数据。

 

Mongo Shell

MongoDB通常作为一个服务器来运行,同时其自带一个以JavaScript为基础的shell,我们姑且称之为Mongo Shell。Mongo Shell 中可以使用JavaScript的标准库。另外,它还带有其他扩展的功能,可以在里面使用类似SQL的数据操作功能。

 

Mongo Shell有四大基本操作:创建、读取、更新和删除

查询某个字段为某个值的文档:db.getCollection("collection").find({"key":value})
查询某个文档前N行:db.getCollection("collection").find({}).sort({"key":-1}).limit(N)
查询某个字段大于某个值的文档:db.getCollection("collection").find({"key":{"${gt}":value}})
查询符合条件的文档数:db.getCollection("collection").find({"key":value}).count()

 

参考文献:

MongoDB: The Definitive Guide 2nd Edition, O'Reilly, 2014
http://blog.csdn.net/hzrandd/article/details/49003387

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值