Nosql数据库教程之MongoDB(上)
发布日期:2016-4-20 21:4:17
Nosql数据库教程之MongoDB(上) 图1 相信大家都听说过nosql解决方案吧?nosql解决方案是web开发中很流行的技术。那你一定也有听说过MongoDB? 你一定也准备好了来学习一下web开发中最酷的技术之一MongoDB? 在本次教程中,我们将介绍MongoDB来帮助大家了解MongoDB,让大家能够像Mysql一样熟练的应用MongoDB到web开发中去。 前言:为什么使用MongoDB? 由于我们在面对对象的开发过程中都被鼓励尝试将逻辑的模型应用到代码开发中去,所以我们使得代码在概念上更加容易理解。当我们需要这样做的时候,我们最好能够清晰地看到逻辑操作的互动及其信息的处理。 那么假设如果你可以将需要使用的程序化模型直接保存的话呢?那么如果你可以直接保存它们而不需要保存数据库中表里面的一行一行数据呢? 学习MongoDB,你就可以实现这个功能! 本次教程,我们将学习基本的MongoDB知识,例如,创建,更新与删除数据库和记录,执行复杂的查询并且使用MapReduce来执行初级的数据挖掘。 一、安装Mongo 首先,我们需要下载MongoDB。 在这个地址中我们需要寻找支持你的平台与架构的安装,由于我的操作系统是win7,所以这里下载使用的是2.0.2 for Windows 64-bit。你们可以根据自己的电脑下载合适的版本。 解压安装完毕后,请你创建一个数据库文件夹,这里我创建在C:\WS-GBIN1\mongodb\data\db文件下。 然后运行数据库启动命令,代码如下所示: mongod --dbpath C:\WS-GBIN1\mongodb\data\db 这个时候会在C:\WS-GBIN1\mongodb\data\db目录下创建Mongdb相关文件。 然后,请运行命令行 cmd。, 然后找到你安装的Mongodb目录下的bin目录,运行如下所示的命令: mongo 你可以看到如图3所示的界面: 如果你看到图3这样的窗口内容,那我们就已近安装完毕,要准备开始学习MongoDB! 命令行说明,代码如下所示: 图4 二、 创建一个数据库并且插入记录 初始化后,没有数据库创建。没关系只要我们插入记录,它会立刻自己创建。拷贝如下内容到命令行窗口,代码如下所示: 图5 没问题的话,我们确认一下数据库内容,使用如下的命令,代码如下所示: db.gbin1.find() 将看到图6所示的内容: 图6中的代码中显示了所有我们创建的记录,在这里需要提醒大家的是id字段。如果你不指定ID的话,mongodb自动为你生成。这是一个唯一标示。 你可以看到我们插入的所有记录,现在我们准备查询。 三、搜索记录 你记得前面的命令吧? 它查询返回了所有的记录。如果你要查询指定的内容呢? 回答是使用selector。 1.Selectors Selector是对于mongo来说类似sql中使用的where语句。它允许我们执行如下所说的操作:
等等... 2.必须匹配的记录 比如,我们需要找到所有的女性,使用如下所示的命令: db.gbin1.find({gender: 'f'}); 查询所有的男性呢? 很简答,如下所示的代码: db.gbin1.find({gender: 'm'}); 3.多条件查询 下面所说的语句将查询男性演员或国籍是english db.gbin1.find({gender: 'm', $or: [{nationality: 'english'}]}); 若需要知道国籍为english或者american呢? 很简单,代码如下所示: db.gbin1.find({gender: 'm', $or: [{nationality: 'english'}, {nationality: 'american'}]}); 四、记录排序 使用Mongo我们需要使用sort命令来执行排序。与find命令类似,使用不同选项来设定不同排序结果 和mysql一样,我们这里升序与降序的关键字不同, 我们用下面的使用方式: 升序: -1 降序: 1 举例说以下代码: db.gbin1.find({gender: 'm', $or: [{nationality: 'english'}, {nationality: 'american'}]}).sort({nationality: -1}); 以上所说的命令将返回所有的男性,国籍为english或american,并且使用国籍的降序排列。 那么我们怎么使得国籍降序,而名字使用升序排列呢? 代码如下所示: db.gbin1.find({gender: 'm', $or: [{nationality: 'english'}, {nationality: 'american'}]}).sort({nationality: -1, first: 1}); 你可以从图12中看到Arnold Schwarzenegger在Tony Curtis后面出现 4.限制返回记录 若是一个非常大的数据集,我们想限制结果为2,那么怎么执行? Mongo提供了limit命令,类似MYSQL允许我们执行限制操作。我们使用上面的查询,但是只返回2个记录。如下所示: db.gbin1.find({gender: 'm', $or: [{nationality: 'english'}, {nationality: 'american'}]}).limit(2); 那么假如我们希望取得第三个或第四个记录,忽略前面俩个呢? 如图14所示: 你将看到头俩个被忽略了。 六、更新记录 Mongo同时也为我们提供了记录更新选项。使用find方法来查询需要更新的记录,然后执行更新。 例如我们需要更新James Caan的记录,指定头发颜色是灰色,不是褐色。那么我们执行如下所示的代码: db.gbin1.update({first: 'james', last: 'caan'}, {$set: {hair_colour: 'brown'}}); 以上所说的代码执行后,不会有任何的成功与失败的提示。你需要使用如下的代码来查看你的更新: db.gbin1.find({first: 'james', last: 'caan'}); 从以上图片中我们看到了更新 七、 删除记录 若你需要删除一个记录,你需要指定一些selector,否则你会删除全部记录。 比如我们需要删除James Caan。使用如下所示的命令: db.gbin1.remove({first: 'james', last: 'caan'}); 与更新一样,没有任何提示是否你已经成功。你需要自己查看。 db.gbin1.find({first: 'james', last: 'caan'}); 运行以上的代码应该没有记录返回。如果没有返回记录,说明这个记录已经被删除。 那么我们如何删除所有记录呢? db.gbin1.remove();db.gbin1.find(); 运行以上所示的代码你将什么记录都看不到了,说明已经删除了 八、总结: 本文我们介绍了Mongodb是什么,为什么需要Mongodb,如何安装, 如何增删查改。如果你需要了解更多,请访问mongodb主站!
|