Nosql数据库教程之初探MongoDB - 第一部分

MongoDB入门教程
本文介绍MongoDB的基础知识,包括安装步骤、数据库与记录的基本操作,如创建、查询、排序、更新及删除等。

大家都听说过nosql解决方案吧?现在是web开发中很流行的技术。 是不是也有听说过MongoDB? 你是不是准备好了来学习一下web开发中最酷的技术之一MongoDB?

在这个系列教程中,我们将介绍帮助大家了解MongoDB,让大家能够像Mysql一样熟练的应用MongoDB到web开发中去。 希望大家喜欢!

相关标签:MongoDB

为什么使用MongoDB?

在面对对象的开发过程中,我们都被鼓励尝试将逻辑的模型应用到代码开发中去,因此我们使得代码在概念上更加容易理解。当我们需要这样做的时候,我们最好能够清晰的看到逻辑操作的互动及其信息的处理。

那么假设如果你可以将需要使用的程序化模型直接保存的话呢?如果你可以直接保存它们而不需要保存数据库中表里面的一行一行数据呢? 学习MongoDB,你就可以实现这个功能!

在这个教程中,我们将学习基本的MongoDB,例如,创建,更新和删除数据库和记录,执行复杂的查询并且使用MapReduce来执行初级的数据挖掘。那么废话不说,我们现在开始!

步骤一:安装Mongo

我们需要在这个地址下载MongoDB

在这个地址中我们需要寻找支持你的平台和架构的安装,我的操作系统是win7,这里下载使用的是2.0.2 for Windows 64-bit。 (GBin1友情提醒:注意大家不要下载nightly build,因为它们可能不稳定)

直接解压安装完毕后,请创建一个数据库文件夹,这里我创建在C:\WS-GBIN1\mongodb\data\db

然后运行数据库启动命令如下:

 
  1. mongod --dbpath C:\WS-GBIN1\mongodb\data\db

这个时候会在C:\WS-GBIN1\mongodb\data\db目录下创建Mongdb相关文件。

Nosql数据库教程之初探MongoDB - gbin1.com

然后,请运行命令行 cmd。, 然后找到你安装的Mongodb目录下的bin目录,运行如下命令:

 
  1. mongo

你可以看到如下的界面:

Nosql数据库教程之初探MongoDB - gbin1.com

如果你看到以上的窗口内容,我们已近安装完毕,准备开始学习MongoDB!

 
  1. 命令行说明:
  2. 组件
  3.  
  4. bin/mongod - The database process.
  5. bin/mongos - Sharding controller.
  6. bin/mongo - The database shell (uses interactive javascript).
  7.  
  8. 工具
  9.  
  10. bin/mongodump - MongoDB dump tool - for backups, snapshots, etc..
  11. bin/mongorestore - MongoDB restore a dump
  12. bin/mongoexport - Export a single collection to test (JSON, CSV)
  13. bin/mongoimport - Import from JSON or CSV
  14. bin/mongofiles - Utility for putting and getting files from MongoDB GridFS
  15. bin/mongostat - Show performance statistics

步骤二: 创建一个数据库并且插入记录

初始化后,没有数据库创建。没关系只要我们插入记录,它会立刻自己创建。拷贝如下内容到命令行窗口:

 
  1. db.gbin1.insert({
  2. first: 'matthew',
  3. last: 'setter',
  4. dob: '21/04/1978',
  5. gender: 'm',
  6. hair_colour: 'brown',
  7. occupation: 'developer',
  8. nationality: 'australian'
  9. });
  10. db.gbin1.insert({
  11. first: 'james',
  12. last: 'caan',
  13. dob: '26/03/1940',
  14. gender: 'm',
  15. hair_colour: 'brown',
  16. occupation: 'actor',
  17. nationality: 'american'
  18. });
  19. db.gbin1.insert({
  20. first: 'arnold',
  21. last: 'schwarzenegger',
  22. dob: '03/06/1925',
  23. gender: 'm',
  24. hair_colour: 'brown',
  25. occupation: 'actor',
  26. nationality: 'american'
  27. });
  28. db.gbin1.insert({
  29. first: 'tony',
  30. last: 'curtis',
  31. dob: '21/04/1978',
  32. gender: 'm',
  33. hair_colour: 'brown',
  34. occupation: 'developer',
  35. nationality: 'american'
  36. });
  37. db.gbin1.insert({
  38. first: 'jamie lee',
  39. last: 'curtis',
  40. dob: '22/11/1958',
  41. gender: 'f',
  42. hair_colour: 'brown',
  43. occupation: 'actor',
  44. nationality: 'american'
  45. });
  46. db.gbin1.insert({
  47. first: 'michael',
  48. last: 'caine',
  49. dob: '14/03/1933',
  50. gender: 'm',
  51. hair_colour: 'brown',
  52. occupation: 'actor',
  53. nationality: 'english'
  54. });
  55. db.gbin1.insert({
  56. first: 'judi',
  57. last: 'dench',
  58. dob: '09/12/1934',
  59. gender: 'f',
  60. hair_colour: 'white',
  61. occupation: 'actress',
  62. nationality: 'english'
  63. });

没问题的话,我们确认一下数据库内容,使用如下命令:

 
  1. db.gbin1.find()

 

将看到如下内容:

Nosql数据库教程之初探MongoDB - gbin1.com

以上代码中显示了所有我们创建的记录,需要提醒大家的是id字段。如果你不指定ID的话,mongodb自动为你生成。这是一个唯一标示。

你可以看到我们插入的所有记录,现在我们准备查询。

步骤三:搜索记录

你记得前面的命令吧? 它查询返回了所有的记录。如果你要查询指定的内容呢? 回答是使用selector。

Selectors

Selector是对于mongo来说类似sql中使用的where语句。它允许我们执行如下操作:

  • 指定必须匹配,类似, AND语句
  • 指定可选匹配,类似, OR语句
  • 指定必须存在
  • 等等... 

必须匹配的记录

比方说,我们需要找到所有的女性,使用如下命令:

 
  1. db.gbin1.find({gender: 'f'});

 Nosql数据库教程之初探MongoDB - gbin1.com

查询所有的男性呢? 很简答,如下:

 
  1. db.gbin1.find({gender: 'm'});

 

Nosql数据库教程之初探MongoDB - gbin1.com

 

多条件查询

下面语句将查询男性演员或者国籍是english

 
  1. db.gbin1.find({gender: 'm', $or: [{nationality: 'english'}]});

 

Nosql数据库教程之初探MongoDB - gbin1.com

 

如果需要知道国籍为english或者american呢? 很简单,如下:

 
  1. db.gbin1.find({gender: 'm', $or: [{nationality: 'english'}, {nationality: 'american'}]});

 

Nosql数据库教程之初探MongoDB - gbin1.com

 

步骤四:记录排序

使用Mongo我们需要使用sort命令来执行排序。和find命令类似,使用不同选项来设定不同排序结果

和SQL不一样,我们这里升序和降序的关键字不同, 我们使用如下:

升序: -1  降序: 1

这里是一个例子:

 
  1. db.gbin1.find({gender: 'm', $or: [{nationality: 'english'}, {nationality: 'american'}]}).sort({nationality: -1});

 

以上命令将返回所有的男性,国籍为english或者american,并且使用国籍的降序排列。

Nosql数据库教程之初探MongoDB - gbin1.com

 

那么如何使得国籍降序,而名字使用升序排列呢? 如下:

 
  1. db.gbin1.find({gender: 'm', $or: [{nationality: 'english'}, {nationality: 'american'}]}).sort({nationality: -1, first: 1});

 

Nosql数据库教程之初探MongoDB - gbin1.com

 

你可以看到Arnold Schwarzenegger在Tony Curtis后面出现

限制返回记录

如果是一个非常大的数据集,我们想限制结果为2,怎么执行? Mongo提供了limit命令,类似MYSQL允许我们执行限制操作。我们使用上面的查询,但是只返回2个记录。如下:

 
  1. db.gbin1.find({gender: 'm', $or: [{nationality: 'english'}, {nationality: 'american'}]}).limit(2);

 

Nosql数据库教程之初探MongoDB - gbin1.com

如果我们希望取得第三个或者第四个记录,忽略前面俩个呢? 如下:

Nosql数据库教程之初探MongoDB - gbin1.com.

你将看到头俩个被忽略了。

步骤六:更新记录

Mongo同时也提供了记录更新选项。使用find方法来查询需要更新的记录,然后执行更新。

比如我们需要更新James Caan的记录,指定头发颜色是灰色,不是褐色。那么我们执行如下:

 
  1. db.gbin1.update({first: 'james', last: 'caan'}, {$set: {hair_colour: 'brown'}});

 

以上代码执行后,不会有任何的成功和失败的提示。你需要使用如下命令来查看更新:

 
  1. db.gbin1.find({first: 'james', last: 'caan'});

 

Nosql数据库教程之初探MongoDB  - gbin1.com

以上图片中我们看到了更新

步骤七: 删除记录

如果你需要删除一个记录,你需要指定一些selector,否则你会删除全部记录。

例如我们需要删除James Caan。使用如下命令:

 
  1. db.gbin1.remove({first: 'james', last: 'caan'});

 

和更新一样,没有任何提示成功与否。你需要自己查看。

 
  1. db.gbin1.find({first: 'james', last: 'caan'});

 

以上应该没有记录返回。如果没有返回记录,说明这个记录已经被删除。 如何删除所有记录呢?

 
  1. db.gbin1.remove();
  2. db.gbin1.find();

 

运行以上你将什么记录都看不到了,说明已经删除了

总结:

今天我们介绍了Mongodb是什么,为什么需要Mongodb,如何安装, 如何增删查改。如果你需要了解更多,请访问mongodb主站!下一个教程,我们将介绍如何执行复杂的查询。 希望大家继续关注我们!



转自:http://www.gbtags.com/gb/share/2417.htm

潮汐研究作为海洋科学的关键分支,融合了物理海洋学、地理信息系统及水利工程等多领域知识。TMD2.05.zip是一套基于MATLAB环境开发的潮汐专用分析工具集,为科研人员与工程实践者提供系统化的潮汐建模与计算支持。该工具箱通过模块化设计实现了两大核心功能: 在交互界面设计方面,工具箱构建了图形化操作环境,有效降低了非专业用户的操作门槛。通过预设参数输入模块(涵盖地理坐标、时间序列、测站数据等),用户可自主配置模型运行条件。界面集成数据加载、参数调整、可视化呈现及流程控制等标准化组件,将复杂的数值运算过程转化为可交互的操作流程。 在潮汐预测模块中,工具箱整合了谐波分解法与潮流要素解析法等数学模型。这些算法能够解构潮汐观测数据,识别关键影响要素(包括K1、O1、M2等核心分潮),并生成不同时间尺度的潮汐预报。基于这些模型,研究者可精准推算特定海域的潮位变化周期与振幅特征,为海洋工程建设、港湾规划设计及海洋生态研究提供定量依据。 该工具集在实践中的应用方向包括: - **潮汐动力解析**:通过多站点观测数据比对,揭示区域主导潮汐成分的时空分布规律 - **数值模型构建**:基于历史观测序列建立潮汐动力学模型,实现潮汐现象的数字化重构与预测 - **工程影响量化**:在海岸开发项目中评估人工构筑物对自然潮汐节律的扰动效应 - **极端事件模拟**:建立风暴潮与天文潮耦合模型,提升海洋灾害预警的时空精度 工具箱以"TMD"为主程序包,内含完整的函数库与示例脚本。用户部署后可通过MATLAB平台调用相关模块,参照技术文档完成全流程操作。这套工具集将专业计算能力与人性化操作界面有机结合,形成了从数据输入到成果输出的完整研究链条,显著提升了潮汐研究的工程适用性与科研效率。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值