软件测试NoSQL之MongoDB

扼要:

1、熟悉MongoDB的数据库操作;


MongoDB为NoSQL的文档存储数据库。在前面的章节中已经讲述NoSQL的分类,本章不再复述。本章以目前较为流行的MongoDB进行讲述。

MongoDB安装

1、 下载:https://www.mongodb.com/try/download/community

2、 Windows安装较为简单,都是根据安装指导,下一步即可;

3、 Linux安装:

a) Red Hat/CentOS的系统在线安装依赖包:sudo yum install libcurl openssl

b) 下载:wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-4.2.8.tgz

c) 解压:tar -zxvf mongodb-linux-x86_64-ubuntu1604-4.2.8.tgz

d) 将解压包拷贝到指定目录:mv mongodb-src-r4.2.8 /usr/local/mongodb4

e) 添加环境变量:export PATH=/usr/local/mongodb4 /bin:$PATH;

MongoDB基本操作

1. 创建数据库

use test2021

test2021:数据库名

2. 删除数据库,执行前先选择所需执行的数据库,再执行下面的语句:

db.dropDatabase()

3. 删除集合,类似删除表:

db.collection.drop()

4. 创建集合,类似创建表:

db.createCollection(“table2021”)

5. 插入文档,插入的数据为json格式:

db.col.insert({title: ‘柳青软件测试’,

description: ‘MongoDB数据库基础知识’

})

6. 更新文档:

db.col.update({‘title’:’柳青软件测试’},{$set:{‘title’:’MongoDB基础知识’}

7. 删除文档:

db.col.remove({‘title’:’MongoDB基础知识’})

8. 查询文档:

查询所有数据:db.col.find().pretty()

查询title为“MongoDB基础知识”的文档:db.col.find({“title”:” MongoDB基础知识”}).pretty()

9. 条件查询:

操作

格式

范例

等于

{<key>:<value>}

db.col.find({“title”:”MongoDB基础知识”}).pretty()

小于

{<key>:{$lt:<value>}}

db.col.find({“No”:{$lt:49}}).pretty()

小于或等于

{<key>:{$lte:<value>}}

db.col.find({“No”:{$lte:49}}).pretty()

大于

{<key>:{$gt:<value>}}

db.col.find({“No”:{$gt:49}}).pretty()

大于或等于

{<key>:{$gte:<value>}}

db.col.find({“No”:{$gte:49}}).pretty()

不等于

{<key>:{$ne:<value>}}

db.col.find({“No”:{$ne:49}}).pretty()

10. 条件查询limit()方法

类似SQL中的limit的方法使用,查询多少条数据:db.COLLECTION_NAME.find().limit(1)

11. 条件查询Skip()方法

该方法是指过滤第几条数据,默认参数为0:db.col.find().skip(1)(除了第一条不显示外,显示其余的)

12. 条件查询sort()方法

是对数据进行排序,使用参数1或者-1表示,1:升序排序;-1降序排序;

db.col.find().sort({“No”:-1}):按No字段的降序排序

13. 条件查询aggregate() 方法

该方法类似SQL中的count(),进行分类统计:

表达式

描述

实例

$sum

计算总和。

db.mycol.aggregate([{$group : {_id : “$name”, num_tutorial : {$sum : “$No”}}}])

$avg

计算平均值

db.mycol.aggregate([{$group : {_id : “$name”, num_tutorial : {$avg : “$No”}}}])

$min

获取集合中所有文档对应值得最小值。

db.mycol.aggregate([{$group : {_id : “$name”, num_tutorial : {$min : “$No”}}}])

$max

获取集合中所有文档对应值得最大值。

db.mycol.aggregate([{$group : {_id : “$name”, num_tutorial : {$max : “$No”}}}])

$push

在结果文档中插入值到一个数组中。

db.mycol.aggregate([{$group : {_id : “$name”, url : {$push: “$url”}}}])

$addToSet

在结果文档中插入值到一个数组中,但不创建副本。

db.mycol.aggregate([{$group : {_id : “$name”, url : {$addToSet : “$url”}}}])

$first

根据资源文档的排序获取第一个文档数据。

db.mycol.aggregate([{$group : {_id : “$name”, first_url : {$first : “$url”}}}])

$last

根据资源文档的排序获取最后一个文档数据

db.mycol.aggregate([{$group : {_id : “$name”, last_url : {$last : “$url”}}}])

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年2月18日
下一篇 2021年2月18日

相关推荐