MongoDB安装和术语操作
MongoDB安装和术语操作
一、nosql和关系型数据库区别
1、什么是nosql?
2、关系型数据库和菲关系型数据库的区别:
3、非关系型在网站架构中的地位
二、MongoDB安装和配置
MongoDB简介:
MongoDB 是由 C++语言编写的,是一个基于分布式文件存储的开源数据库系统,在高负载的情况下,添加更多的节点,可以保证服务器性能,MongoDB旨在为WEB应用提供可扩展的高性能数据存储解决方案
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成,MongoDB文档类似于 JSON 对象,字段值可以包含其他文档,数组及文档数组
1、选择自定义安装
2、对于安装目录,一定要记住
配置:
1、在bin目录同级的位置,创建一个datas文件夹
2、在datas下面创建data存储数据文件夹和logs日志文件夹
3、配置环境变量
把在bin目录到配置环境变量中
4、配置服务
服务在windows系统就相当于linux的后台启动
安装的命令:
mongod --dbpath C:\MongoDB\Server\3.4\datas\data --port 27017 --logpath C:\MongoDB\Server\3.4\datas\logs\mongo.log --logappend --serviceName "MongoDB" --install
解释:
mongod--dbpath C:\MongoDB\Server\3.4\datas\data #安装路径
--port 27017 # 端口号
--logpath C:\MongoDB\Server\3.4\datas\logs\mongo.log #日志文件的位置
--logappend #日志以追加方式
--serviceName "MongoDB"#服务名称
--install
注意:打开的cmd必须益管理员方式打开
三、MongoDB的客户端和服务端命令
配置环境变量目的就是在找exe工具,而这些工具的作用就是在cmd或者python使用外部程序,就会在环境变量的这些目录中进行查找
对于数据库,其中有两个命令
服务端命令:启动这数据库
mongo的默认端口是:27017
mongod
--port -p哪个端口上---
--dbpath 数据库启动之后,存储数据的位置
客户端命令:连接启动数据库,进行基础数据操作
mongo
--port 端口
--host ip
四、MongoDB的基础术语和基础命令
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | 表连接, MongoDB不支持 | |
primary key | primary key | 主键, MongoDB自动将_id字段设置为主键 |
2、集合--collection
集合就是 MongoDB 文档组,类似于关系数据库的表
集合没有固定的结构,意味着你在集合中可以插入不同格式和类型的数据
2、文档--document
文档是一组键值(key-value)对(即BSON),---document也就是一个js的对,{}
json---Bson就是json的二进制格式,-----js中的-----mongo底层的执行引擎就是js引擎,所以你可以在mongo客户端下运行js代码
文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)
格式:{key:value}--{key:value(有对应的数据)}
五、MongoDB数据的插入和查找
show dbs---显示有哪些数据库
use datebase_name---选库---【隐式创建数据库】
show collections/tables --查看一个数据库下面的所有集合
1、创建数据
默认进入mongo,就有一个test数据库
第一步:use 一个不存在库
第二步:存储内容到数据库就可以创建
2、创建一个集合---数据就会创建成功
3、在集合中插入数据
mongo集合也是可以隐式创建
隐式创建:你不用提前取创建集合或者数据库
数据库--切换数据中use--插入一条数据或者创建一个集合就创建了数据库
集合:
db.集合名.insert()---集合也帮我们自动创建好
MongoDB 使用 insert()方法向集合中插入文档,语法如下:
1、插入单条
db.collection_name.insert({单条文档})
2、插入多条
db.col_name.insert(
[{单条文档},{单条文档},{单条文档},....]
)
例子:
db.shop.insert([{"goods_id":1,"cat_id":4,"goods_name":"KD876","goods_number":1,"click_count":7,"shop_price":1388.00,"add_time":1240902890},{"goods_id":4,"cat_id":8,"goods_name":"\u8bfa\u57fa\u4e9aN85\u539f\u88c5\u5145\u7535\u5668","goods_number":17,"click_count":0,"shop_price":58.00,"add_time":1241422402},{"goods_id":3,"cat_id":8,"goods_name":"\u8bfa\u57fa\u4e9a\u539f\u88c55800\u8033\u673a","goods_number":24,"click_count":3,"shop_price":68.00,"add_time":1241422082},{"goods_id":5,"cat_id":11,"goods_name":"\u7d22\u7231\u539f\u88c5M2\u5361\u8bfb\u5361\u5668","goods_number":8,"click_count":3,"shop_price":20.00,"add_time":1241422518},{"goods_id":6,"cat_id":11,"goods_name":"\u80dc\u521bKINGMAX\u5185\u5b58\u5361","goods_number":15,"click_count":0,"shop_price":42.00,"add_time":1241422573},{"goods_id":7,"cat_id":8,"goods_name":"\u8bfa\u57fa\u4e9aN85\u539f\u88c5\u7acb\u4f53\u58f0\u8033\u673aHS-82","goods_number":20,"click_count":0,"shop_price":100.00,"add_time":1241422785},{"goods_id":8,"cat_id":3,"goods_name":"\u98de\u5229\u6d669@9v","goods_number":1,"click_count":9,"shop_price":399.00,"add_time":1241425512},{"goods_id":9,"cat_id":3,"goods_name":"\u8bfa\u57fa\u4e9aE66","goods_number":4,"click_count":20,"shop_price":2298.00,"add_time":1241511871},{"goods_id":10,"cat_id":3,"goods_name":"\u7d22\u7231C702c","goods_number":7,"click_count":11,"shop_price":1328.00,"add_time":1241965622},{"goods_id":11,"cat_id":3,"goods_name":"\u7d22\u7231C702c","goods_number":1,"click_count":0,"shop_price":1300.00,"add_time":1241966951},{"goods_id":12,"cat_id":3,"goods_name":"\u6469\u6258\u7f57\u62c9A810","goods_number":8,"click_count":13,"shop_price":983.00,"add_time":1245297652}])db.shop.insert([{"goods_id":13,"cat_id":3,"goods_name":"\u8bfa\u57fa\u4e9a5320 XpressMusic","goods_number":8,"click_count":13,"shop_price":1311.00,"add_time":1241967762},{"goods_id":14,"cat_id":4,"goods_name":"\u8bfa\u57fa\u4e9a5800XM","goods_number":1,"click_count":6,"shop_price":2625.00,"add_time":1241968492},{"goods_id":15,"cat_id":3,"goods_name":"\u6469\u6258\u7f57\u62c9A810","goods_number":3,"click_count":8,"shop_price":788.00,"add_time":1241968703},{"goods_id":16,"cat_id":2,"goods_name":"\u6052\u57fa\u4f1f\u4e1aG101","goods_number":0,"click_count":3,"shop_price":823.33,"add_time":1241968949},{"goods_id":17,"cat_id":3,"goods_name":"\u590f\u65b0N7","goods_number":1,"click_count":2,"shop_price":2300.00,"add_time":1241969394},{"goods_id":18,"cat_id":4,"goods_name":"\u590f\u65b0T5","goods_number":1,"click_count":0,"shop_price":2878.00,"add_time":1241969533},{"goods_id":19,"cat_id":3,"goods_name":"\u4e09\u661fSGH-F258","goods_number":12,"click_count":7,"shop_price":858.00,"add_time":1241970139},{"goods_id":20,"cat_id":3,"goods_name":"\u4e09\u661fBC01","goods_number":12,"click_count":14,"shop_price":280.00,"add_time":1241970417},{"goods_id":21,"cat_id":3,"goods_name":"\u91d1\u7acb A30","goods_number":40,"click_count":4,"shop_price":2000.00,"add_time":1241970634},{"goods_id":22,"cat_id":3,"goods_name":"\u591a\u666e\u8fbeTouch HD","goods_number":1,"click_count":15,"shop_price":5999.00,"add_time":1241971076}])
db.shop.insert([{"goods_id":23,"cat_id":5,"goods_name":"\u8bfa\u57fa\u4e9aN96","goods_number":8,"click_count":17,"shop_price":3700.00,"add_time":1241971488},{"goods_id":24,"cat_id":3,"goods_name":"P806","goods_number":100,"click_count":35,"shop_price":2000.00,"add_time":1241971981},{"goods_id":25,"cat_id":13,"goods_name":"\u5c0f\u7075\u901a\/\u56fa\u8bdd50\u5143\u5145\u503c\u5361","goods_number":2,"click_count":0,"shop_price":48.00,"add_time":1241972709},{"goods_id":26,"cat_id":13,"goods_name":"\u5c0f\u7075\u901a\/\u56fa\u8bdd20\u5143\u5145\u503c\u5361","goods_number":2,"click_count":0,"shop_price":19.00,"add_time":1241972789},{"goods_id":27,"cat_id":15,"goods_name":"\u8054\u901a100\u5143\u5145\u503c\u5361","goods_number":2,"click_count":0,"shop_price":95.00,"add_time":1241972894},{"goods_id":28,"cat_id":15,"goods_name":"\u8054\u901a50\u5143\u5145\u503c\u5361","goods_number":0,"click_count":0,"shop_price":45.00,"add_time":1241972976},{"goods_id":29,"cat_id":14,"goods_name":"\u79fb\u52a8100\u5143\u5145\u503c\u5361","goods_number":0,"click_count":0,"shop_price":90.00,"add_time":1241973022},{"goods_id":30,"cat_id":14,"goods_name":"\u79fb\u52a820\u5143\u5145\u503c\u5361","goods_number":9,"click_count":1,"shop_price":18.00,"add_time":1241973114},{"goods_id":31,"cat_id":3,"goods_name":"\u6469\u6258\u7f57\u62c9E8 ","goods_number":1,"click_count":5,"shop_price":1337.00,"add_time":1242110412},{"goods_id":32,"cat_id":3,"goods_name":"\u8bfa\u57fa\u4e9aN85","goods_number":4,"click_count":9,"shop_price":3010.00,"add_time":1242110760}])
4、MongoDB 删除数据库
语法:db.dropDatabase()
删除当前数据库,默认为 test,你可以使用 db 命令查看当前数据库名
5、MongoDB 创建集合与删除集合
MongoDB 创建集合:
语法格式:db.createCollection(name,options)
参数说明:
- name: 要创建的集合名称
- options: 可选参数, 指定有关内存大小及索引的选项
options 可以是如下参数:
字段 | 类型 | 描述 |
---|---|---|
capped | 布尔 | (可选)如果为 true,则创建固定集合。固定集合是指有着固定大 小的集合,当达到最大值时,它会自动覆盖最早的文档。 当该值为 true 时,必须指定 size 参数 |
autoIndexId | 布尔 | (可选)如为 true,自动在 _id 字段创建索引。默认为 true |
size | 数值 | (可选)为固定集合指定一个最大值(以字节计)。 如果 capped 为 true,也需要指定该字段 |
max | 数值 | (可选)指定固定集合中包含文档的最大数量 |
6、删除集合
语法:db.collection.drop()
六、MongoDB 中的查询表达式
在 MongoDB 中的查询表达式就相当于 sql中的where子句的查询条件,可以用来过滤 数据。当我们删除,更新或者查找时,都需要查询表达式作为第一个条件用来过滤到底删除 131132 或者更新或者查找哪一条数据,所以掌握好查询表达式是掌握MongoDB 中 CRUD 的关键
说明 | 语法 | 描述 |
---|---|---|
等于 | {field:value} | 表示 field = value |
小于 | {field:{$lt:value}} | 表示:field < value |
大于 | {field:{$gt:value}} | 表示:field > value |
小于等于 | {field:{$lte:value}} | 表示:field <= value |
大于等于 | {field:{$gte:value}} | 表示:field >= value |
不等于 | {field:{$ne:value}} | 表示:field != value |
$nor | {$nor:[{条件1},{条件2},...]} | 用来表示多个条件都不满足 |
$and | {$and:[{条件1},{条件2},...]} | 表示多个条件同时满足,相当于逻辑关系中的且 |
$or | {$or:[{条件1},{条件2},...]} | 表示多个条件满足其中之一,相当于逻辑关系中的或 |
1、MongoDB 查询文档使用 find() 方法
db.collection_name.find({查询条件},
{field1:1,field:0}, #显示的列
).pretty() # 美化的显示
实例1:查询goods_id为4的商品,不显示_id字段
db.shops.find({goods_id:4},{_id:0}).pretty()
实例2:取出不属于第3栏目且不属于第11栏目的商品
$nin---一个不在一个[ ]多个值中
db.shop.find({cat_id:{$nin:[3,11]}},{_id:0,cat_id:1})
$nor
db.shop.find({$nor:[{cat_id:3},{cat_id:11}]},{_id:0,cat_id:1})
实例3:取出价格大于100且小于300或者大于4000且小于5000的商品
db.shop.find({$or:[{$and:[{shop_price:{$gt:100}},{shop_price:{$lt:300}}]},{$and:[{shop_price:{$gt:4000}},{shop_price:{$lt:5000}}]}]}).pretty()
七、MongoDB 更新文档
MongoDB 使用 update()方法来更新集合中的文档
语法:
db.coll_name.update({查询表达式},---更新谁
{更新的内容},
{可选参数}
)
更新的内容参数:
1、如果它是一个文档,表示新文档替换旧文档,-----文档替换并不是更新
案例: goods_id为1的商品,想要将shop_price为3000
db.shop.update({goods_id:1},{shop_price:3000})
2、如果想要做更新字段操作,必须配合更新表达式来完成
更新表达式:
$set 修改某列的值:
案例:将goods_id为4的商品价格变成2000
案例:goods_id为4的商品价格标称1000,cat_id改为4栏目,goods_number:1
db.shop.update({goods_id:4},{$set:{shop_price:3000}})db.shop.update({goods_id:4},{$set:{shop_price:1000,cat_id:4,goods_number:1}})
$unset 删除某个列:
案例:将栏目3的add_time这个field删除
db.shop.update({cat_id:3},{$unset:{add_time:1}})
默认只操作一个数据
$rename 重命名某个列:
案例:将goods_number小于5的文档的cilck_count改成count_click---所有替换
db.shop.update({goods_id:{$lt:5}},{$rename:{click_count:'count_click'}},{multi:true})
multi:true,匹配出多个内容,全部更新,默认是false,也就是更新一条
$inc 增长某个列
案例:将goods_id为11的商品的价格降低100
db.shop.update({goods_id:11},{$inc:{shop_price:-100}})
可选参数: {upsert:true}
这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入
db.shop.update({goods_id:1},{$set:{goods_name:'华为p30',goods_number:100}},{upsert:true})db.shop.find({goods_name:'华为p30'})
update配合upsert:true这个功能,可以做到数据不存在就插入,存在就更新
八、MongoDB 删除文档
MongoDB remove()函数是用来移除集合中的数据
语法:
db.shop.remove({goods_id:1})
九、MongoDB 中 limit、skip、sort、count 方法
limit: 如果你需要在 MongoDB 中读取指定数量的数据记录,可以使用 MongoDB 的 limit 方法,limit()方法接受一个数字参数,该参数指定从 MongoDB 中读取的记录条数,
limit语法:
db.shop.find().limit(5)
skip: 我们除了可以使用 limit()方法来读取指定数量的数据外,还可以使用 skip()方法来跳 过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数
skip语法:
db.shop.find().limit(5).skip(5)
sort: 在 MongoDB中使用sort()方法对数据进行排序,sort()方法可以通过参数指定排序的 字段,并使用 1 和 -1 来指定排序的方式,其中 1为升序排列,而-1 是用于降序排列,
sort语法:
db.shop.find().sort({goods_id:1})
count: 在 MongoDB 中使用 count()方法对数据进行统计
count语法:
db.shop.find().count()
十、MongoDB的导入导出
mongoexport -d 数据库的名称
-c 集合
-f 导出的哪些field
-q 查询条件
-o 输入的文件名(路径)abc.json
--type csv 类型
# 导出json
mongoexport -d shop -c shop -o goods.json
# 导出csv
mongoexport -d shop -c shop -f goods_name,shop_price -o goods.csv --type csv
# 加入导出条件
mongoexport -d shop -c shop -q {shop_price:{$gt:1000}} -f goods_name,shop_price -o goods.csv --type csv
以上是 MongoDB安装和术语操作 的全部内容, 来源链接: utcz.com/a/33498.html