当前位置: 首页 > news >正文

初识MongoDB

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

        这几天学习了下MongoDB。在这边分享下自己的学习经历。

        首先我们需要了解下什么是MongoDB。在这套用下官方回答。

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

        NoSQL就不多说了,这种百度、google都可以查到。

        MongoDB中包含了一些概念,database(数据库),collection(数据库表/集合),document(数据记录行/文档),field(数据字段/域),index(索引),primary key(主键,MongoDB自动将_id字段设置为主键)

        启动连接mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]。

username:password@这个是账号密码,可选,也就是说可以不设置账号密码(测试数据库可以这样做,但是别傻傻的在release环境也这么搞)

host1 必须的指定至少一个host, host1 是这个URI唯一要填写的。它指定了要连接服务器的地址。如果要连接复制集,请指定多个主机地址。

portX 可选的指定端口,如果不填,默认为27017

/database 如果指定username:password@,连接并验证登陆指定数据库。若不指定,默认打开 test 数据库。

?options 是连接选项。如果不使用/database,则前面需要加上/。所有连接选项都是键值对name=value,键值对之间通过&或;(分号)隔开

举栗说明:mongodb://localhost:27017/jk-dev

关于options比较多,详细的可以自己查下官方文档

        这样我们就连接上MongoDB,接下来我们要进行增删改查。

use DATABASE_NAME 如果数据库不存在,则创建数据库,否则切换到指定数据库。

show dbs查看所有数据库。

use runoob这样我们创建一个名字为runoob的数据库

db.runoob.insert({"name":"菜鸟教程"})  我们刚创建的数据库 runoob 并不在数据库的列表中, 要显示它,我们需要向 runoob 数据库插入一些数据。

db.dropDatabase()  删除数据库

db.createCollection(name, options)  创建集合

db.createCollection("col", { capped : true, autoIndexId : true, size : 6142800, max : 10000 } )

db.col.drop()    删除集合

db.col.insert({title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库',by: '菜鸟教程',url: 'http://www.runoob.com',tags: ['mongodb', 'database', 'NoSQL'], likes: 100})     创建文档

db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})    更新文档

db.col.remove({'title':'MongoDB 教程'})    删除文档

db.col.find().pretty()    查询文档 

db.col.find({"by":"菜鸟教程", "title":"MongoDB 教程"}).pretty()   按条件查询

db.collection.find(query, {title: 1, by: 1}) // inclusion模式 指定返回的键,不返回其他键
db.collection.find(query, {title: 0, by: 0}) // exclusion模式 指定不返回的键,返回其他键

db.collection.find(query, {_id:0, title: 1, by: 1}) // 只能全1或全0,除了在inclusion模式时可以指定_id为0

增删改查就到这里了。

转载于:https://my.oschina.net/u/260921/blog/2250772

相关文章:

  • STM32之CAN ---CAN ID过滤器分析
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 进制之间的相互转换
  • 值得推荐的10本PHP书籍(转)
  • C文件操作
  • 深入理解ReactRedux
  • 使用JAVA进行MD5加密后所遇到的一些问题
  • ExpandableListView使用(三)-ScrollView嵌套ExpandableListView,列表显示不全
  • ORACLE中的各种数据类型详细的介绍
  • 一个简单的golang json解析库
  • Java Web笔记 – Servlet中的Filter过滤器的介绍和使用 编写过滤器
  • java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
  • maven中jar、war、pom的区别
  • 尝试使用word发布博客
  • Python之优先级问题(待修改)
  • [Vue CLI 3] 配置解析之 css.extract
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • 2019年如何成为全栈工程师?
  • AHK 中 = 和 == 等比较运算符的用法
  • JavaScript HTML DOM
  • JavaScript-Array类型
  • SegmentFault 2015 Top Rank
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • V4L2视频输入框架概述
  • 创建一种深思熟虑的文化
  • 仿天猫超市收藏抛物线动画工具库
  • 分享几个不错的工具
  • 坑!为什么View.startAnimation不起作用?
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 你真的知道 == 和 equals 的区别吗?
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (C++20) consteval立即函数
  • (C语言)二分查找 超详细
  • (二十三)Flask之高频面试点
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (算法)前K大的和
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET 使用 XPath 来读写 XML 文件
  • .NET 依赖注入和配置系统
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .NET导入Excel数据
  • /bin/bash^M: bad interpreter: No such file or directory
  • /etc/motd and /etc/issue
  • /etc/skel 目录作用
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • @Service注解让spring找到你的Service bean