zoukankan      html  css  js  c++  java
  • MongoDB,pymongo

    MongoDB:
    数据库,nosql
    [{
    id:1
    name:"蔡文姬"
    age: 16
    gender:"女"
    },
    {
    id:1
    name:"蔡文姬"
    age: 16
    sex:["女","girl","老阿姨"]
    other:{
    hobby:["男","boy","小哥哥"]
    }
    }]

    *使用了不存在的对象即创建该对象
    *不存在关系链接

    插入:
    db.users.insert({name:"蔡文姬",age:16}) # 建议不要使用 不推荐使用
    查询:
    db.users.find()
    更新:
    db.users.update({"name":"蔡文姬"},{$set:{"age":18}})# 建议不要使用 不推荐使用
    删除:
    db.users.remove({"age":21}) # 建议不要使用 不推荐使用


    table Collections 表
    row Documents 数据条目
    column Field 字段

    MongoDB数据类型:
    Object ID :Documents 自生成的 _id 并且 不支持转换成JSON字符串
    ?:{"_id" : ObjectId("5bda5293c6c72e52ffc7e91e")}
    ObjectId:"5bda5293c6c72e52ffc7e91e"
    0-8字节是时间戳,
    9-14字节的机器标识符,表示MongoDB实例所在机器的不同;
    15-18字节的进程id,表示相同机器的不同MongoDB进程。
    19-24字节是计数器

    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类型,时间戳可以秒杀一切时间类型)


    增删改查的支持方式:
    insert:
    db.users.insertMany([{"name":"金王吧"},{"name":"egon"}])
    db.users.insertOne({"name":"刘sir"})

    remove:
    db.users.deleteOne({"age":30})
    db.users.deleteMany({"age":30})

    update:
    db.users.updateOne({},{$set: {"cursors":"FullStack"}})
    db.users.updateMany({},{$set: {"cursors":"FullStack"}})

    find:
    db.users.find({})
    db.users.findOne({})



    数学比较符:
    $lt: <
    $lte: <=
    $gt: >
    $gte: >=
    $eq;==
    : : == or =


    $:
    存储满足条件的数据下标索引位置
    db.users.updateOne({"other.name":"linux","name":"银网吧"},{$set:{"other.$.score":19}})

    弊端:[
    [1,2,3],
    [{k:{zk:zv}},{k2:v2},{k3:v3}],
    [4,5,6],
    ]


    $关键字 查询:
    $or : db.users.find({$or:[{age:18},{name:"银网吧"}]})

    $and : ,

    $in : db.users.find({age:{$in:[18,84,73]}})

    $all : db.users.find({hobby:{$all:[1,2,3,4,5,6]}})

    $修改器 update:
    $set: 直接将字段的值设定为value
    $unset: 删除字段
    $inc: 原值增加 db.users.updateMany({name:"金王吧"},{$inc: {cursors: 1}})

    $array修改器:
    $push : append(item) db.users.updateMany({name:"金王吧"},{$push: {hobby:10}})
    $pull : remove(item) db.users.updateMany({name:"金王吧"},{$pull: {hobby:10}})
    $pop : pop() db.users.updateMany({name:"金王吧"},{$pop: {hobby:-1}}) 1最后一个 -1第一个


    skip limit sort

    limit : db.users.find({}).limit(2) 显示条目数量
    skip : db.users.find({}).skip(1) 跳过条目数量

    简单分页 :db.users.find({}).limit(每页条目).skip(当前页码*每页条目)
    sort :db.users.find({}).sort({ age:1 }) 1:ASC -1:DESC

    分页排序多重用法:
    db.users.find({}).sort({ age:-1 }).limit(2).skip(2)



    pymongo
    import pymongo

    mongo = pymongo.MongoClient("127.0.0.1",27017)
    MONGODB = mongo["SS2DAY04"]

    查:
    result = list(MONGODB.users.find({}))
    for item in result:
    print(item)
    print(result)

    result_one = MONGODB.users.find_one({})
    print(result_one,type(result_one))
    print(result_one.get("_id"),type(result_one.get("_id")))

    增:
    res = MONGODB.student.insert_one({"name":"yd","nickname":"wl"})
    print(res.inserted_id,type(res.inserted_id))
    res = MONGODB.student.insert_many([{"name":"yd","nickname":"wl"},{"name":"wpq","nickname":"cb"},{"name":"lj","nickname":"dsb"}])
    print(res.inserted_ids)

    删:
    MONGODB.student.remove({})
    MONGODB.student.delete_one({"name":"yd"})
    MONGODB.student.delete_many({"name":"yd"})

    改:
    MONGODB.student.update({"name":"yd"})
    MONGODB.student.update_one({"name":"wpq"},{"$set":{"nickname":"peppa pig"}})
    MONGODB.student.update_many({},{"$set":{"age":84}})


    删:
    MONGODB.student.delete_many({})  # 值删除所有数据
    MONGODB.student.drop()  # 删除表

    分页:
    res = MONGODB.users.find({}).sort("age",pymongo.ASCENDING).limit(2).skip(0)
    for i in res:
    print(i)
     
  • 相关阅读:
    uni-app之预加载和取消预加载(仅支持APP和H5)——uni.preloadPage、uni.unPreloadPage
    JavaScript 之数组对象(Array)
    【2019csp模拟】文件列表
    【2019csp模拟】两段子序列
    B. 【普转提七联测 Day 6】载重
    C.【普转提七联测 Day 6】分数
    A. 【普转提七联测 Day 6】石头
    struct和class的区别
    TagHelper中获取当前Url
    为什么要使用 Taghelper (标记助手)
  • 原文地址:https://www.cnblogs.com/luck-L/p/9892386.html
Copyright © 2011-2022 走看看