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术语/概念解释/说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
columnfield数据字段/域
indexindex索引
table joins表连接, MongoDB不支持
primary keyprimary 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

回到顶部