【学习笔记】mongoDB初步(一)MongoDB的安装和增删改查基本语法,使用和命令
MongoDB适合储存大量关联性不强的数据。
MongoDB中的数据以“库”—“集合”—“文档”—“字段”结构进行储
存。这种结构咋看和传统关系型数据库的“库”—“表”—“行”—“列”结构非常像。但是,MongoDB不需要预先定义表结构,数据的字段可以任意变动,并发写入速度也远远超过传统关系型数据库。
1.安装
官网下载4.0
bin目录下:
cfg为配置文件
在c盘下新建data文件夹,其中再新建db:
输入mongod.exe
图形化界面的软件:robo 3T
Robo 3T的下载地址为:https://robomongo.org/download
create database创建数据库
插入单条数据的命令为“insertOne()”。
db.getCollection(‘learning’).insertOne({“name”: “张小二”, “age”: 17, “address”: “浙江”})
MongoDB还允许Key不带引号,直接写成{name: ’王小六’,
age: 25, work: ’厨师’}。但这种写法存在一些局限性,并且会导
致MongoDB的命令不方便平滑移植到Python中。因此,建议使用带单引号的写法或者带双引号的写法
在MongoDB里,插入数据的字段是可以任意修改、添加、删除的
如再插入:
db.getCollection(‘learning’).insertOne({“today”: “6.8”,“tomo”:“9”})
db.getCollection(‘learning’).insertOne({“today”: “六月八日”,“tomo”:“9”,“week”:“tuesday”})
提示:
“能不能做”是一回事,“应不应该做”是另一回事。虽然
MongoDB能够处理同一个字段的不同数据类型,也可以随意增减字段,但并不意味着应该这样做。在设计数据库时,应尽量保证同一个字段使用同一种类型的数据,并提前考虑好应该有哪些字段。
增删改查
批量插入:
db.getCollection(‘learning’).insertMany([{“name”: “小明”,“age”:“9”},
{“name”: “小红”,“age”:“19”},
{“name”: “小王”,“age”:“22”}])
切换显示模式:
注:
无论是插入一条数据还是插入多条数据,每一条数据被插入
MongoDB 后都会被自动添加一个字段“_id”。“_id”读作“Object Id”,它是由时间、机器码、进程pid和自增计数器构成的。
“_id”始终递增,但绝不重复。
● 同一时间,不同机器上面的“_id”不同。
● 同一机器,不同时间的“_id”也不同。
● 同一机器同一时间批量插入的数据,“_id”依然不同。
查询数据
db.getCollection(‘learning’).find()
或
db.getCollection(‘learning’).find({})
查询特定数据:
db.getCollection(‘learning’).find({‘name’:‘小红’})
“find”的参数相当于一个字典。字典的 Key 就是字段名,字典的值就是要查询的值。如果字典有多个Key,则这些字段需同时满足。
1)查询所有“age”字段不小于25的记录,
则需要使用大于等于操作符“$gte”。查询语句如下:
db.getCollection(‘example_data_1’).find({‘age’: {’$gte’: 25}})
范围操作符及其意义
其中,用于限定字段的字典的Key为各个字段名。其值只有两个——0或1。
● 如果值为0,则表示在全部字段中剔除值为0的这些字段并返回。
● 如果值为1,则表示只返回值为1的这些字段。
例如,查询数据集example_data_1,但不返回“address”和“age”字段。查询语句如下:
db.getCollection(‘example_data_1’).find({}, {‘address’: 0, ‘age’: 0})
2)返回查询的条数(一共多少条符合要求的)
count():
db.getCollection(‘learning’).find({‘age’: {’$gt’: 21}}).count()
3)limit(4)限制只返回4条数据。
具体命令如下:
db.getCollection(‘example_data_1’).find().limit(4)
4)对查询结果进行排序——“sort()”命令。
字段的值为-1表示倒序,为1表示正序。
sort({‘字段名’:-1或1})
对所有“age”大于21的数据,按“age”进行倒序排列。查询语
句如下:
.find({‘age’: {’$gt’:21}}).sort({‘age’: -1})
修改 去重数据
修改操作也就是更新(Update)操作,对应的 MongoDB 命令
为“updateOne()”和“updateMany()”。
去重操作用到的命令为“distinct()”。格式如下:
db.getCollection(‘example_data_1’).distinct(’字段名’, 查询语句的第一个字典)
对“age”大于等于24的记录的“age”字段去重
.distinct(‘age’,{‘age’:{’$gte’:24}})
mongodb介绍
MongoDB 可以用来保存大量数据,且字段和格式均可以随意改变
SQL与MongoDB术语对比:
MongoDB[1] 是一个基于分布式文件存储的数据库。由C 语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
【学习笔记】mongoDB初步(一)MongoDB的安装和增删改查基本语法,使用和命令相关推荐
- Mybatis学习笔记(二) 之实现数据库的增删改查
开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包.这些软件工具均可以到各自的官方网站上下载 ...
- Django学习笔记(10)——Book单表的增删改查页面
一,项目题目:Book单表的增删改查页面 该项目主要练习使用Django开发一个Book单表的增删改查页面,通过这个项目巩固自己这段时间学习Django知识. 二,项目需求: 开发一个简单的Book增 ...
- mybatis学习笔记(2)两种配置实现增删改查
第二天学习mybatis,发现框架的存在确实是省了我们很多时间,我们完全可以把一些操作简化,或者实现简单的封装提供我们使用.昨天是跟着教程云里雾里的实现了配置,今天再次使用就方便很多. String ...
- MYSQL学习笔记 (二)对数据库结构的增删改查
显示数据库 show databases; 选择数据库 use database;//其实database为数据库的名字 创建表 create table tbclass( id int not nu ...
- Oracle数据库学习笔记(七)--事务及数据的增删改查
事务的概念 事务是逻辑上的一组操作,要么都执行,要么都不执行. 事务最经典也经常被拿出来说的例子就是转账了.假如小明要给小红转账 1000 元,这个转账会涉及到两个关键操作就是:将小明的余额减少 10 ...
- Oracle: 一、Oracle简介,安装,基本使用,建表增删改查,数据类型及常用命令...
内容简介 一.Oracle简介,安装,基本使用,建表增删改查,数据类型及常用命令. 技术与环境 操作系统: windows 语言类别: SQL之PL/SQL 特别鸣谢: 由马云涛老师提供资料 数据库: ...
- mysql用创建的用户登陆并修改表格_MySQL 基础学习二:创建一个用户表,并增删改查...
MySQL 基础学习二:创建一个用户表,并 增删改查 提示:MySQL 命令建议都用大写,因为小写运行时,还是翻译成大写的. 第一步,创建一个用户表 1,打开控制台,进入数据库 C:\Users\Ad ...
- JavaScript学习(四十八)—原型对象的增删改查
JavaScript学习(四十八)-原型对象的增删改查 一.构造方法与原型对象的图解 二.型对象的增删改查 (一).什么是原型 每个函数都会有一个属性--prototype属性,这个属性都会有一个对象 ...
- MySQL学习总结(2) --- 数据表管理(增删改查)、使用DQL查询数据(SELECT)
MySQL学习总结(2) - 数据表管理(增删改查).使用DQL查询数据(SELECT) 1. 数据管理(增删改查) 数据库数据管理方法: a.通过SQLyog等管理工具管理数据库数据 b. 通过DM ...
最新文章
- R语言卡方分布函数Binomial Distribution(dchisq, pchisq, qchisq rchisq)实战
- 048_Calendar日历
- python实验二序列_python 学习笔记 二 序列, 列表, 元组, 字符串
- python3操作MySQL:insert插入数据
- vue项目中使用swiper
- Where与Having的区别
- Java Web应用小案例:查询城市天气信息
- 数学知识点回顾(三)
- casio计算器计算统计数据
- python pytorch tenser 索引 slice 切片
- windows10系统精简:NTlite工具
- Teemo Attacking
- win10打开计算机管理闪退,win10系统下任务管理器闪退的解决方法
- 语音特征信号分类---BP神经网络---MATLAB实现
- html5文字跳动特效,jQuery网页文字跳动动画特效
- win10升级后CFT加载程序占用CPU高解决办法
- vue 项目 想修改代码严格模式 lintOnSave
- base64图片转file的处理
- ssm毕设项目大学生就业管理系统5t101(java+VUE+Mybatis+Maven+Mysql+sprnig)
- CCF C³活动第二期主题“智能家居”,与CTO聚首小米科技园!
热门文章
- linux下运行hadoop,Linux环境下hadoop运行平台的搭建
- java ajax 点赞功能_Ajax+jQuery+bootstrap+Java实现异步点赞功能,并限制点击次数
- matlab完全自学一本通 pdf,matlab r2014a自学一本通 MATLAB R2014a完全自学一本通 中文pdf扫描版[125MB] 下载-脚本之家...
- mysql远程访问显示警告信息_mysql远程访问的时候遇到了各种问题
- 【小白学习keras教程】二、基于CIFAR-10数据集训练简单的MLP分类模型
- 【推荐系统】基于物品的协同过滤算法
- 九、Spark模块和安装
- kali - Nmap
- 三十一、Vue框架赶紧来了解一下
- win7计算机怎么找管理员,Win7系统Administrator不见了怎么解决?