扼要:
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进行处理,非常感谢!