mongodb的基本使用

一、下载mongodb服务

官网:mongo

提示:不要用不支持多线程下载的浏览器下载

二、安装(windoms)

选择custom项可以自定义安装目录

三、配置(基于win7)

3.1配置系统环境变量

将安装路径填入path中

3.2配置数据库文件路径

在自己想要保存的位置新建文件夹data,再在data文件夹里面新建一个文件夹db

运行时:mongod --dbpath="data文件夹路径/data/db"

 

四、开启mongodb服务器

4.1打开cmd,在终端输入mongodb --dbpath="你的data/db路径"

4.2另外打开一个cmd,输入mongo就可以进入mongodb数据库啦

如果没有进入,在服务端敲一下回车

 

 

五、操作命令

5.1数据库操作

如果use了不存在的数据库,会创建该数据库,只会保存在内存当中

 

# 查看数据库
show databases

# 切换数据库,如果数据库不存在,则会创建该数据库
use databasename # 数据库名称

# 查看当前使用的数据库
db

# 查看当前数据库活动的数据表
show tables

# 如果存在则显示,不存在则在内存中创建该表
db.tablename # 表名

# 增
db.tablename.insert({字典})
eg:db.user.insert({name:"lucas"})

官方推荐写法:
db.tablename.insertOne({字典}) # 增加一条数据
db.tablename.insertMany({字典}) # 增加多条数据

# 查
简单:
db.tablename.find() 查找当前数据表的所有数据
db.tablename.findOne({}) 查找符合条件的第一条数据
db.tablename.find({}) 查找符合条件的所有数据

#高级:
db.tablename.find({age:9}) 查询所有age=9的数据
db.user.find({age:9, name:'lucas'}) #并列条件
db.user.find({"$and":[{name:'lucas'}, {age:18}]}) $and并列
db.user.find({"$or": [{age:100},{name:'lucas'}]}) $or或者
db.user.find({"age":{"$in":[999, 1000]}}) $in 包含或者同一字段或者条件
$all 子集,只能是子集
db.user.find({"hobby":{"$all":[2,1,1]}})

# 如果查询_id,那么数据的值必须带上ObjectId的数据类型
db.user.find({"_id":ObjectId("asjdhasgdiuasgdiuas")})

 # Object查询时可以直接使用 对象.属性 的方式作为Key
 # 当Array中出现了Object 会自动遍历 Object中的属性

改: $修改器
db.users.update({name:"alexander.dsb.li"},{"$set":{name:"DSB"}})
db.tablename.update({查询符合条件的数据},{$修改器:{修改的内容}})

修改符合查询条件的第一条数据
单个字段 进行修改
$set 强制将谋值修改覆盖
db.users.update({name:"DSB"},{"$set":{age:73,gender:1}})

$unset 强制删除一个字段
db.users.update({age:73},{"$unset":{gender:0}})

$inc 引用增加
db.users.update({name:"DSB"},{"$inc":{age:1}})
db.users.update({name:"DSB"},{"$inc":{age:-2}})

针对$array的修改器 以及 $关键字的用法和特殊性
Array是list 列表类型 
list -> append remove pop extends
Array -> $push $pull $pop $pushAll $pullAll
$push 在array中追加数据 
db.users.update({name:"MJJ"},{"$push":{"hobby":"抽烟"}})

$pushAll 在Array中批量增加数据 [] == list.extends
db.users.update({name:"MJJ"},{"$pushAll":{"hobby":["喝酒","烫头"]}})

$pull 删除符合条件的所有元素
db.users.update({name:"MJJ"},{"$pull":{"hobby":"烫头"}})

$pop 删除array中第一条或最后一条数据
db.users.update({name:"MJJ"},{"$pop":{"hobby":1}}) 正整数为 删除最后一条数据
db.users.update({name:"MJJ"},{"$pop":{"hobby":-1}}) 负整数为 删除第一条数据

$pullAll 批量删除符合条件的元素 []
db.users.update({name:"MJJ"},{"$pullAll":{"hobby":[3,4,5]}})

$关键字 的特殊用法
储存符合条件的元素下标索引 - 只能存储一层遍历的索引位置
$ = 9
db.users.update({"hobby":10},{"$set":{"hobby.$":0}})

官方推荐:
db.tablename.updateOne({},{}) # 修改符合条件的第一条数据
db.tablename.updateMany({},{}) # 修改符合条件的所有数据
删:
db.Tables.remove({}) 删除所有符合条件的数据

db.tablename.deleteOne({查询条件})    删除符合条件的第一条数据
db.tablename.deleteMany({查询条件}) 删除所有符合条件的数据

数学比较符:
$gt    大于
$lt    小于
$gte    大于等于
$lte    小于等于
$eq    等于 : 是用在 "并列" "或者" 等条件中
$ne    不等于 不存在和不等于 都是 不等于

六、数据类型

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

七、mongodb数据库的相关概念

  • 使用了不存在的对象即创建该对象
  • JSON结构存储
  • mysql数据库与MongoDB数据库对比
  • Mysql-MongoDB
  • database -database
  • Tables-Collections
  • Colum -Field
  • Row Documents

 

八、高级函数

8.1排序sort

db.users.find({}).sort({age:-1}) 依照age字段进行倒序
db.users.find({}).sort({age:1}) 依照age字段进行正序

8.2筛选limit

db.users.find({}).limit(4) 筛选前4条数据

8.3跳过skip

db.users.find({}).skip(3) 跳过前3条数据 显示之后的所有数据

8.4利用排序、筛选、跳过实现分页

# 页码
page = 1

# 每页条数 count = 2 db.users.find({}).limit(2).skip(2).sort({ age:-1 }) limit = count skip = (page-1) * count db.users.find({}).limit(count).skip((page-1)*count).sort({ age:-1 })

 

posted @ 2021-01-06 11:51  kingdoms  阅读(283)  评论(0)    收藏  举报