资讯专栏INFORMATION COLUMN

走向全栈之MongoDB的使用

dance / 1192人阅读

摘要:初识是一个基于分布式文件存储的数据库。旨在为应用提供可扩展的高性能数据存储解决方案。是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。为什么选择网上搜索的结果说插入效率比高云云的。。

初识MongoDB

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

为什么选择MongoDB

网上搜索的结果说mongodb插入效率比mysql高云云的。。
不过主要应该是因为json的缘故,为什么json呢,因为围绕json有很多可用的开源产品,比如elasticsearch

不过依我看,最主要的原因就是其对JavaScript良好的支持吧

安装MongoDB

官方下载地址

我们也可以利用homebrew和docker等第三方工具来进行MongoDB的安装

可视化工具

在这里我推荐Robomongo
没有原因,就是用着还挺顺手 -。-

启动MongoDB

打开终端,执行sudo mongod --config /usr/local/etc/mongod.conf启动MongoDB,再另开一个终端输入mongo就能成功打开mongo shell并进行咱们的操作了

界面如下

如果需要退出MongoDB,按下control+c即可
注意:以上均在mac环境下成功实现,win 下本人还未尝试..下次找个机会试试

终于到了MongoDB操作时间

请开始我们的表演

插入数据

先利用use trevor-mongo创建一个名为trevor-mongo的数据库

可以看到已经自动切换至trevor-mongo这个数据库,现在就可以利用db.test.insertOne({title: "第一条数据"})来插入一条数据

如果在数据库中没有数据表,MongoDB则会自动给你创建数据表

就这样,恭喜你,已经在test数据表里面添加了第一条数据

查询数据

在上面我们已经添加了一条数据,那么现在可以在终端里面输入db.test.find({})来查询test数据表下的所有数据

大伙有没有觉得_id很烦人??
其实我们完全可以将它过滤掉

db.test.find({}, {_id: 0, title: 1})这条命令里面,第一个大括号里面应该写入筛选条件,如果为空,则默认为all。第二个大括号则是用来放数据显示条件,0代表不现实,1代表显示

修改(更新)数据

我们可以利用db.test.updateOne({},{$set: {des: "no.1"}})来为数据添加一个des字段,再查寻一下

bingo!更新成功

删除数据

利用db.test.deleteOne({title: "第一条数据"}),我们可以删除从开头起第一个title"第一条数据"的文档

就这样,我们已经将最简单的操作给过了一遍,是不是很简单?所以说MongoDB对初学者真的很友好

进阶

在这之前,推荐先去看看MongoDB基本命令

现在,我们可以利用豆瓣开发者api来模拟一些数据

首先咱们先GET一下豆瓣电影top250的数据

subjects里面的数据复制并打开编辑器,输入

将这些代码粘贴至mongo shell并执行,这样就在数据库下成功创建了一个名为movies的数据表。

这时我们可以利用Robomongo来查看数据
首先是连接数据库,MongoDB默认端口号为27017

现在开始有目的性的查询数据

假设咱们有个需求,需要获得评分9.2以上的所有电影,并且只需显示电影名(title),电影评分(rating.average)以及电影年份(year)并将它们升序排列输出

这说白了就是一个条件查询
代码如下:

db.movies.find({"rating.average": {$gt: 9.2}}, {title: 1, year: 1, "rating.average": 1, _id: 0}).sort({"rating.average": 1})

就这样成功完成查询,是不是很简单?

就这样,祝大家 have a nice day ; )

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/18961.html

相关文章

  • node express mongoose简单实现栈之增删改查

    摘要:作为一个有志向的前端,怎么能不搞搞全栈呢。。。地址欢迎大家多多交流前端技术啊,如果大家喜欢的话,请给我一个小小的哦 作为一个有志向的前端,怎么能不搞搞全(zhuang)栈(bi)呢。。。说搞咱就搞啊,后端就用node,数据库就用mongodb,前端呢,呃,再搞个node的web框架express,思路搞定,开始搭建我们的环境,搭建之前还是先看看我们的目标和成果 项目的目标和成果 sh...

    AndroidTraveler 评论0 收藏0
  • 全栈最后一公里 - Node.js 项目线上服务器部署与发布

    摘要:没有耐心阅读的同学,可以直接前往学习全栈最后一公里。我下面会罗列一些,我自己录制过的一些项目,或者其他的我觉得可以按照这个路线继续深入学习的项目资源。 showImg(https://segmentfault.com/img/bVMlke?w=833&h=410); 本文技术软文,阅读需谨慎,长约 7000 字,通读需 5 分钟 大家好,我是 Scott,本文通过提供给大家学习的方法,...

    Nosee 评论0 收藏0
  • 2017-07-17 前端日报

    摘要:前端日报精选听说你没来总结个人使用过的移动端布局方法新特性简介用写组件坦然面对应对前端疲劳中文深入理解笔记函数前端架构经验分享系列教程之创建页面元素龙云全栈系列教程之定位页面元素龙云全栈第期与表单验证技术周刊期知乎 2017-07-17 前端日报 精选 听说你没来 JSConf 2017?总结个人使用过的移动端布局方法 - Rni-L - SegmentFaultNode.js v8....

    caiyongji 评论0 收藏0
  • 【Part1】用JS写一个Blog(node + vue + mongoDB

    摘要:总的来说就是开发博客系统,探索前端走向全栈之路。我会记录下来整个过程在我的专栏,有兴趣的可以关注一下,一起学习,欢迎讨论。话不多说,先进行前后端项目的初始化。安装完成后,输入命令切换到项目文件夹后输入命令访问一下项目初始化完成。 学习JS也有一段时间了,准备试着写一个博客项目,前后端分离开发,后端用node只提供数据接口,前端用vue-cli脚手架搭建,路由也由前端控制,数据异步交互用...

    jhhfft 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<