一. MongoDB的启动
1. 启动MongoDB服务
mongod --dbpath d:\data # 数据库存放路径, 模式c:\data
mongod --install # 安装windows服务
mongod --remove # 卸载windows服务
2. 客户端连接
mongo
二. MongoDB的增删改查
1. 增
db.tablename.insertOne({}) 插入一条数据
db.tablename.insertMany([{}, {}]) 插入多条数据
2. 删
db.tablename.deleteOne({}) 删除符合条件的第一条数据
db.tablename.deleteMany({}) 删除符合条件的所有数据
3. 改
db.tablename.updateOne({}, {"$set": {}}) 修改符合第一个参数条件的第一条数据, 改为第二个参数内容
db.tablename.updateMany({}, {"$set: {}"}) 修改符合第一个参数条件的所有数据, 改为第二个参数内容
4. 查
db.tablename.findOne({}) 查询符合条件的第一条数据
db.tablename.find({}) 查询符合条件的所有数据
三. MongoDB的数据类型
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类型,时间戳可以秒杀一切时间类型)
四. MongoDB的$关键字
1. 数学比较符(gt, lt, ne...)
db.tablename.find({"age" : {"$gt": 50}}) 年龄大于50的
2. 查询关键字(in, or, and, all)
db.tablename.find({"age": {"$in": [10, 20]}}) 年龄为10或者20的
db.tablename.find({"$or": [{"age": 10}, {"name": "xxx"}]}) 年龄为10或者名字为xxx的
db.tablename.find({"hobby": {"$all": ["x", "xx"]}}) 查询子集
3. $关键字的特殊用法
db.tablename.updateOne({hobby:"娟儿"},{$set:{"hobby.$":"小圈儿"}}) 存储符合条件元素的下标索引
五. 修改器
$set - 强制替换覆盖
{$set:{name:123}}
$unset - 强制删除字段
{$unset:{name:1}}
$inc - 引用增加, 原有数值基础上增加 1
{$inc:{age:1}}
$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}})
六. 查询结果的显示
1. sort排序
db.tablename.find().sort({"_id": -1})
2. skip跳过, 跳过几条数据再显示
db.tablename.find().skip(num)
3. limit限制, 限制几条数据
db.tablename.find().limit(num)
4. 优先级,分页
先排序, 再跳过, 最后限制
db.tablename.find({}).sotr(_id:-1).limit(num).skip((page-1)*num)
七. pymongo模块的使用
1. 导入模块
from pymongo import MongoClient
2. 创建一个客户端对象
mc = MongoClient() # 默认host=localhost, port=27017
3. 指定库
db = mc["databasename"]
4. 操作库
db.tablename.find()