【学习笔记】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应用提供可扩展的高性能数据存储解决方案。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值