分享人:李宁虎
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
主要特性:
面向集合存储,易于存储对象类型的数据 模式自由 支持动态查询 支持完全索引,包含内部对象 支持复制和故障恢复 使用高效的二进制数据存储,包括大型对象 文件存储格式为BSON(一种JSON的扩展)
文档(document)是MongoDB中数据的基本单元,非常类似于关系型数据库系统中的行(但是比行要复杂的多) 集合(collection)就是一组文档,如果说MongoDB中的文档类似于关系型数据库中的行,那么集合就如同表 MongoDB的单个计算机可以容纳多个独立的数据库,每一个数据库都有自己的集合和权限 MongoDB自带简洁但功能强大的JavaScript shell,这个工具对于管理MongoDB实例和操作数据作用非常大 每一个文档都有一个特殊的键"_id",它在文档所处的集合中是唯一的,相当于关系数据库中的表的主键
基本的命令:
Mongodb还支持一些额外的参数选项:有时候我们返回特定的参数
查询集合中的文档 ,使用条件表达式(<, <=, >, >=,!=)
查询集合中的文档 ,统计(count)、排序(sort)、分页(skip、limit) db.customer.count(); db.customer.find().count(); db.customer.find({age:{$lt:5}}).count(); db.customer.find().sort({age:1}); 降序-1 db.customer.find().skip(2).limit(3); db.customer.find().sort({age:-1}).skip(2).limit(3); db.customer.find().sort({age:-1}).skip(2).limit(3).count(); db.customer.find().sort({age:-1}).skip(2).limit(3).count(0); db.customer.find().sort({age:-1}).skip(2).limit(3).count(1);
更新集合中的文档,语法如下 db.collection.update(criteria,objNew,upsert,multi) 参数说明: criteria:用于设置查询条件的对象 objNew:用于设置更新内容的对象 upsert:如果记录已经存在,更新它,否则新增一个记录,取值为0或1 multi:如果有多个符合条件的记录,是否全部更新,取值为0或1 注意:默认情况下,只会更新第一个符合条件的记录 一般情况下后两个参数分别为0,1 ,即: db.collection.update(criteria,objNew,0,1)
举个栗子: db.集合名称.update({name:"user1"},{name:"jack"}); 更新集合中的文档, $set 用来指定一个键的值,如果这个键不存在,则创建它 db.集合名称.update({name:"user1"},{$set:{name:"jack"}});
查询集合中的文档 ,类似于关系型数据库,mongodb中也有游标的概念游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标充当指针的作用。尽管游标能遍历结果中的所有行,但一次只指向一行。
让我们来看看这个例子的代码。
感谢观看,如有出错,恳请指正
BY : 北京分院 李宁虎