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 })

浙公网安备 33010602011771号