MongoDB(一)——简单应用

文章目录

    • 一、CRUD
      • 1、数据库操作
      • 2、数据类型
      • 3、插入
      • 4、保存
      • 5、查询
      • 6、更新
      • 7、更新
    • 二、高级查询
      • 1、数据查询
      • 2、比较运算符
      • 3、范围运算符
      • 4、逻辑运算符
      • 5、支持正则表达式
      • 6、limit和skip
      • 7、自定义查询
      • 8、投影
      • 9、排序
      • 10、统计
      • 11、消除重复
    • 三、数据备份和恢复

MongoDB作为一种非关系型数据库在实际开发中也有着重要的作用,如爬虫,因为爬虫爬取下来的数据的数据类型和每条数据的属性都是不尽相同的,这个时候关系型数据库显然是不能满足我们的需求因为就需要使用MongoDB、Redis等这种非关系型的数据库,下面来主要介绍一下MongoDB的一些操作和相关知识。

一、CRUD

1、数据库操作

查看当前的数据库:db
查看所有的数据库: show dbs / show databases
切换数据库:use 数据库名字
删除当前数据库:

db.dropDatabase()

不手动创建集合:向不存在集合中第一次加入数据时集合会被创建出来

2、数据类型

Object ID:文档ID

String:字符串,必须是有效的UTF-8

Boolean:存储一个布尔值,true或者是false

Integer:整数可以是32位或64位、取决于服务器

Double:浮点值

Arrays:数组或者是列表、多个值存储到一个键

Object:用于嵌入式文档,即一个值一个文档

Null:存储Null值

Timestamp:时间戳,表示从1970-1-1到现在的总秒数

Date:存储当前日期或时间的UNIX时间格式

MongoDB(一)——简单应用_第1张图片

3、插入

db.集合名称.insert(document) 以字典格式写

插入文档时如果不指定_id参数,MongoDB会为文档分配一个唯一的Object Id。

insert id 相同的话会报错

4、保存

db.集合名称.save(document)

如果文档的_id已经存在则对原有数据进行修改,如果数据不存在则添加此数据。

5、查询

db.collection.find()

6、更新

db.集合名称.update(<query>, <update>, {multi:<boolean>})

参数query:查询条件
参数update:更新操作符
参数multi:可选的,默认是false表示只是更新找到的第一条记录,true的话表示满足的文档全部更新

例如:
db.test100.update({name:"xtx"}, {$set:{name:"肖同鑫xxxx"}})

注意:multi update only works with $ operators

7、更新

db.集合名称.remove(<query>, {justOne:<boolean>})


参数query:可选,删除的文档条件
参数justOne:可选的,设为true或者是1表示只删除一条,默认是false表示删除多条

例如:
db.test100.remove({name:"xtx"}, {justOne:true})

二、高级查询

1、数据查询

  1. find():查询
    db.集合名称.find({条件文档})
  2. findOne():查询,只返回一个
    db.集合名称.findOne({条件文档})
  3. pretty():将结果格式化
    db.集合名称.find({条件文档}).pretty

2、比较运算符

小于:$it	(less than)
小于等于:$ite	(less than equal)
大于:$gt	(greater than)
大于等于:$gte
不等于:$ne

3、范围运算符

"$in"表示不在某个范围内
"$nin"表示不在某个范围内

范围要使用列表列出所有的范围

4、逻辑运算符

and:两个条件之间使用逗号分隔,使用比较简单,正常的使用查询条件之间还是使用逗号分隔

or:使用$or,条件放在列表中

5、支持正则表达式

使用//或者是$regex编写正则表达式

6、limit和skip

  1. limit()用于读取指定数量的文档
  2. skip()用于跳过指定数量的文档

当数据量比较大的时候建议先试用skip然后再使用limit,这样的话效率会比较高

7、自定义查询

使用$where后面写一个函数,返回满足条件的数据

8、投影

查询的返回结果中,只选择必要的字段

db.集合名称.find({条件}, {字段名称:1,...})

参数为字段与值,值是1表示显示,不显示的话就不写出来就好了。

特殊:对于_id列默认是显示的,不显示需要明确设置为0

9、排序

方法sort(),用于对集进行排序

db.集合名称.find().sort({字段:1,....})

参数1表示升序,参数-1表示降序

10、统计

方法count()用于统计结果集中文档条数

db.collection.find({条件}).count()

db.collection.count({条件})

11、消除重复

方法distinct()对数据进行去重

db.collection.distinct('去重字段',{条件})

三、数据备份和恢复

  • 备份语法
mongodump -h dbhost -d dbname -o dbdirectory

-h:服务器地址,也可以指定端口号

-d:需要备份的数据库名称

-o:备份的数据存放位置,此目录中存放着备份出来的数据
  • 恢复语法
mongorestore -h dbhost -d dbname --dir dbdirectory

-h:服务器地址

-d:需要恢复的数据库实例

--dir:备份数据所在位置

你可能感兴趣的:(MongoDB,MongoDB)