python mongodb数据库使用

mongodb数据结构

mogodb其实就是

[  // 表 collections
  {  // 行 documents
    "id":1,  // 字段 field
    "name":"Jack",
    "age":18,
    "hobby":["洗脚","打游戏","吃包子"]
  },
  {
    "id":2,
    "name":"Jack",
    "age":18,
    "hobby":["洗脚","打游戏","吃包子"]
  }
]
  • 可视化工具

https://nosqlbooster.com/downloads

数据类型

  1. ObjectId:Doucments 自动成的_Id
  2. 2.String: 字符串 必须是UTF-8
  3. Boolean: 布尔值 true false
  4. Integer: 整型 (Int32 或者 Int64)一般我们使用Int 就可以了
  5. Double:浮点类型 (没有float类型,所有的小数都是Double)
  6. Array:数组或者列表 多个存储到一个键(Python中的list)
  7. Object:字典类型 尽量不要超过四层
  8. Null:空数据类型,python中的None
  9. TimeStamp:时间戳 一般我们使用时间戳
  10. Date:存储当前日期或者时间unix时间格式

mongdb 数据库操作

  • 增加
db.user.insert({"id":2,"name":"Jack","age":18})
  • 查询数据
db.user.find()
# { "_id" : ObjectId("5d728bdfcbdae9451de9771f"), "id" : 2, "name" : "Jack", "age" : 18 }

db.user.find({}).skip(5)  # 跳过5条
db.user.find({}).limit(5)  # 显示5条
db.user.find({}).sort({"age":1})  #  -1倒序  1正序

# 默认顺序
# sort排序 -> skip跳过 —> limit筛选

Python操作 mongodb

  • 安装模块
    pip install pymongo
    +简单实用
import pymongo

mongoClient = pymongo.MongoClient(host="127.0.0.1", port=27017)  # 创建链接
mongoDB = mongoClient["local"]  # 选择local数据库
from bson.objectid import ObjectId  # 字符串 转换 ObjectId


# find
# res = mongoDB.user.find({})
# # print(res)  # 
# for i in res:
#     print(i.get("_id"), type(i.get("_id")))  # 5d728b98cbdae9451de9771e 

# find_one
# res = mongoDB.users.find_one({},{"_id": 0, "age": 0})  # 筛选 结果不要_id age 字段
# print(res)

'''
增加
'''
# res = mongoDB.user.insert_one({"name": "Anny", "age": 23})
# print(res, type(res), res.inserted_id)
#
# res = mongoDB.user.insert_many([{"name": "Anny", "age": 23}, {"name": "Anny", "age": 23}])
# print(res, type(res), res.inserted_ids)


'''
修改
'''
# 只修改 第一条
res = mongoDB.user.update_one({"age": 23}, {"$set": {"name": "Jack"}})
print(res, dir(res))

# 修改全部
# mongoDB.user.update_many({},{"$set":{}})

# '''
# 删除
# '''
# # 删除第一条
# mongoDB.user.delete_one({"name": "Jack"})
# # 删除全部
# mongoDB.user.delete_many({"name": "Jack"})
#
#
# '''
# 特殊的 用法
# '''
# mongoDB.user.find({}).limit(5).skip(5)
#
# mongoDB.user.find({}).sort("age", pymongo.DESCENDING)  # 倒序
# mongoDB.user.find({}).sort("age", pymongo.ASCENDING)  # 正序
#
res = mongoDB.user.find_one({"_id": ObjectId("5d728b98cbdae9451de9771e")})
print(res)
  • mongodb 中 update更新字段里面的修改器
$set 暴力修改
$unset 强制删除字段
$inc +1 +-1 引用增加
array修改器
$push 相当于append 追加数据 updateOne({},{$push:{list:1}}) 向列表中追加一个元素
$pull list中的remove 删除某元素 updateOne({},{$pull:{list:1}})  删除列表张的一个元素
$pushAll list中的extends 迭代追加最后追加数据 updateOne({},{$pushAll:{list}}) 想列表中追加对个元素
$pop list中的pop 删除列表中的第一个或者左后一个元素 updateOne({},{$pop:{list:1}})  或者-1->表示第一个

$ - 符合条件的下标  - 一定在 array中
[3,4,5,2,1]  $=4
updateOne({list:1}, {$set:{"list.$":6}})  在列表中找到 1 对应的下标 也就是4 此时$临时存储下标 4 将下标为4的值修改为6
  • mongodb find 字段查找
find()
findOne()
# 并列条件查找  相当于 AND
find({"name":"Jack", "age":2})
# 或 条件  相当于 OR
find(
{
  $or:[{"name":1},{"age":18,"gender":"女"}]  # 查询 年龄等于18并且性别是女  或者 名为为1的数据
}
)

# 子集 $in
findOne({"hobby":{$in:[1,2,3,4,5]}})  查询爱好符合  1或者2或3或4或5的数据
# 完全符合 $all
findOne({"hooby":{$all:[1,2,3,4,5]}})  爱好必须是1,2,3,4,5 的的数据

你可能感兴趣的:(python mongodb数据库使用)