MongoDB数据库

一.MongoDB的下载:https://www.mongodb.com/

二.MongoDB的安装:

  1.默认安装,点下一步

  2.自定义安装

          

三.mongodb安装完成后的配置

  1.安装完成后配置环境变量path:将mongodb的bin的路径放在path下面

  2.在启动mongodb之前需要先在c盘的目录下面建文件夹data/db(默认数据库的路径)

  3. 启动mongodb:打开cmd>>>>>>输入mongod 这样就启动了mongodb

  •   查看mongodb的帮助:cmd里面mongod --help
  •   mongod 选项   --dbpath  数据库存放路径

          --install   安装windows服务

           --remove  卸载windows服务

  4.修改mongodb的数据库路径示例:

    4.1在D盘创建文件夹\mongoDB\data\db

    4.2打开cmd>>>>>>>>>>输入mongod --dbpath D:\mongoDB\data\db这样就将MongoDB的数据库路径改到了D盘相应的文件夹下面了

四.MongoDB客户端的链接

  1.在cmd中启动MongoDB服务    命令是mongod

  • 如果出现以下错误,需要在c盘创建相应的文件夹然后再启动mongodb

 

  2.在不关闭MongoDB服务的情况下,重新打开一个cmd窗口运行MongoDB自带的客户端   命令是mongo

 五.用MongoDB自带的客户端可以做以下的简单操作

  1.show databases 查看本地磁盘数据库

  2.use dbname 切换当前使用的数据库
  3.db 查看当前使用的数据库
  4.show tables 查看当前数据库存放在磁盘上的数据表

  5.use+不存在的数据库    创建了数据库 当前创建的数据库没有存放在磁盘中
  6.db.tablename 不存在的表名 创建数据表 当前数据表没有存放在磁盘中

  • 刚创建的数据库和数据表,是不会放在磁盘上面的,但是如果表里有数据的话就会放在磁盘上面
  • 一个概念:- 使用了不存在的对象即创建该对象           - 不限制数据结构

 

  • MongoDB的默认服务端口为 27017 - redis:6379 mysql:3306 

 六.使用第三方客户端NoSQLBooster4MongoDB来操作MongoDB

   1.NoSQLBooster客户端下载地址:https://nosqlbooster.com/downloads

  2.创建create  端口是27017

  3.NoSQLBooster客户端对表数据的增删改查:

3.1增加数据:
db.tablename.insert({"key":"value"}) 

官方推荐写法:
db.users.insertOne({})
db.users.insertMany([{},{},{}])

3.2查询数据:
db.tablename.find() 查询符合条件的所有数据
db.tablename.find({"name":"AlexDSB"})

db.tablename.findOne() 查询符合条件的第一条数据

3.3修改数据:
db.tablename.update({"name":"AlexDSB"},{"$set":{"age":84}}) 只修改符合条件的一条数据
$set - set修改器 强制替换覆盖

官方推荐写法
db.tablename.updateOne() 更新符合条件的第一条数据
db.tablename.updateMany() 更新符合条件的所有数据

array+Object : db.users.updateOne({"cours.name":"装X"},{$set:{"cours.$.score":"000"}})

3.4删除数据:
db.tablename.remove({})
db.tablename.remove({age:73}) 删除所有age==73的数据

官方推荐写法
db.users.deleteOne() 删除符合条件的第一条数据
db.users.deleteMany() 删除符合条件的所有数据

 4.数据类型 

  ObjectId :Documents 自动生成的 _id
  _id:ObjectId("5cb69a23815ea7295f8bad43") 自动生成的 json数据中不包含ObjectId类型 id类型uuid
  String: 字符串,必须是utf-8
  Boolean:布尔值,true 或者false (这里有坑哦~在我们大Python中 True False 首字母大写)
  Integer:整数 (Int32 Int64 你们就知道有个Int就行了,一般我们用Int32)
  Double:浮点数 (没有float类型,所有小数都是Double)
  Arrays:数组或者列表,多个值存储到一个键 (list哦,大Python中的List哦)
  Object:深度<=4 如果你学过Python的话,那么这个概念特别好理解,就是Python中的字典,这个数据类型就是字典
  Null:空数据类型 , 一个特殊的概念,None Null
  Timestamp:时间戳 通常不用这个数据类型 如果存储时间 Double
  Date:存储当前日期或时间unix时间格式 (我们一般不用这个Date类型,时间戳可以秒杀一切时间类型)

5.数学比较符:
  $lt : 小于 √
  $lte: 小于等于 √
  $gt : 大于 √
  $gte: 大于等于 √


  $ne : 不等于
  $eq or 冒号 : 等于

 

6.查询关键字:
  Array数据类型会自动遍历
  $in 或者等于相同字段 db.users.find({age:{$in:[19,109]}})
  $or 或者等于不同字段 db.users.find({$or:[{age:19},{age:84}]})
  $and or 逗号 并列条件

  $all - Array 数据类型 子集查询 db.users.find({hobby:{$all: ["罗玉凤"]}})

 

7.$字符特殊用法:
  存储符合条件的元素下标索引
  用于修改字段


8.修改器:
  $set - set修改器 强制替换覆盖
  $unset - 强制删除字段
  $inc - 引用增加

array操作:
  $push append 在array中追加 db.users.update({name:"AlexDSB"},{$push:{hobby:"特斯垃圾"}})
  $pushAll extend 在array中追加列表中的所有元素 db.users.update({name:"AlexDSB"},{$pushAll:{hobby:["22寸轮毂","V8","欧林斯"]}})
  $pull remove 在array中删除一个元素 db.users.update({name:"AlexDSB"},{$pull: {hobby:"V8"}})
  $pullAll 在array中删除一堆元素 db.users.update({name:"AlexDSB"},{$pullAll: {hobby:["小敏","芙蓉姐姐"]}})
  $pop pop 删除第一个 -1 或最后一个 1 的值 db.users.update({name:"AlexDSB"},{$pop: {hobby:1}})

9.skip sort limit
  sort 排序
  db.users.find({}).sort({ age:1 })
  db.users.find({}).sort({ age:1 , birthday:-1 })

limit(1) 选取条目
  db.users.find({}).limit(3000)

skip(1) 跳过
  db.users.find({}).skip(1)

跳过选取
db.users.find({}).skip(2).limit(3)

  • 先排序 再跳过 最后筛选

db.users.find({}).limit(3).skip(2).sort({ age:-1 })

分页:
  (page-1)*num
  db.users.find({}).limit(num).skip((page-1)*num)

 

posted @ 2019-04-17 21:54  QV  阅读(210)  评论(0编辑  收藏  举报