zoukankan      html  css  js  c++  java
  • Mongodb学习总结

    2020/4/2
    Mongodb使用的是类似与json字符串的形式存储数据
    [
    {
    key:value
    },
    {
    key:value
    },
    ]

    Mongodb使用了不存在的对象,即创建该对象

    use db 使用db数据库
    show dbs 查看当前服务器中写在磁盘上的数据库
    show tables 查看数据库中的collection
    db 查看当前使用的数据库

    1.增删改查:
    增:
    db.collection.insert({数据}) 自动生成 _id : ObjectId("")
    官方推荐:
    db.collection.insertOne({数据}) 插入一条数据
    db.collection.insertMany([{数据},{数据}]) 插入多条数据
    查:
    db.collection.find({条件})
    db.collection.findOne({条件})
    改:
    db.collection.update({条件},{$修改器:{数据}})
    官方推荐:
    db.collection.updateOne({条件},{$修改器:{数据}}) 更新一条数据
    db.collection.updateMany({条件},{$修改器:{数据}}) 更新所有数据
    删:
    db.collection.remove({条件})
    官方推荐:
    db.collection.deleteOne({条件}) 删除一条数据
    db.collection.deleteMany({条件}) 删除所有符合条件的数据

    清除collection:
    db.collection.drop()

    2.$关键字
    数学比较符:
    $lt
    $lte
    $gt
    $gte
    $eq :
    db.collection.find("score":{$gt:80})
    查询关键字:
    $or db.collection.find({$or:[{name:1},{age:73}]})
    $in db.collection.find({age:{$in:[1,2,3,4]}}) #符合其中一个条件即可
    $all db.collection.find({hobby:{$all:[1,2,3,4]}}) #子集查询

    2018年12月25日:
    1.$修改器 :
    $set 简单粗暴 {name:value} dict["name"]=value

    $unset 简单粗暴的删除字段 {$unset:{name:1}} del dict["name"]
    db.user_info.updateOne({age:200},{$unset:{age:1}})
    
    $inc 引用增加
    db.user_info.updateMany({},{$inc:{age:1}})
    
    array操作
    $push 在array中追加一个新的元素 [].append(item)
    db.user_info.updateOne({name:"200wansui"},{$push:{hobby:10}})
    
    $pull 在array中删除一个的元素 [].remove(item) [].pop(-1)
    db.user_info.updateOne({name:"200wansui"},{$pull:{hobby:0}})
    
    $pop 不含索引 -1 从前往后  1 从后往前
    db.user_info.updateOne({name:"200wansui"},{$pop:{hobby:1}})
    

    2.$ 字符
    db.user_info.updateOne({hobby:6},{$set:{"hobby.$":"六"}})
    保存符合索引条件数据的下标

    3.Object 字典操作
    db.user_info.updateOne({name:"200wansui"},{$inc:{"info.tizhong":-5}})
    db.user_info.updateOne({name:"200wansui"},{$set:{"info.long":12.5}})

    4.array + Object
    db.user_info.updateOne({"hobby.shengao":150},{$set:{"hobby.$.long":14}})

    5.limit
    db.user_info.find({}).limit(5)
    选取数据从当前位置选择5个

    6.skip 跳过
    db.user_info.find({}).skip(2)
    从0开始跳过2条数据为当前位置

    7.sort
    db.user_info.find({}).sort({ id:-1 })
    根据ID进行排序 -1倒叙 1正序

    8.limit+skip+sort
    db.user_info.find({}).limit(5).skip(10)
    db.user_info.find({}).limit(c).skip((p-1)*c)

    db.user_info.find({}).limit(5).skip(5).sort({ id:-1 })
    
    优先级最高的是 sort 
    其次优先为 skip
    最低优先级 limit
    

    9.pymongo
    import pymongo
    from bson import ObjectId

    mongo_client = pymongo.MongoClient(host="127.0.0.1",port=27017)
    MONGO = mongo_client["数据库"]

    查询数据
    res = list(MONGO.user_info.find({}))
    print(res)

    res = MONGO.user_info.find_one({"id":20})
    res["_id"] = str(res["_id"])

    res = list(MONGO.user_info.find({"$or":[{"name":"dwb"},{"id":15}]}))
    print(res)

    ObjectId json操作
    res_obj = MONGO.user_info.find_one({"_id":ObjectId(res["_id"])})
    print(res_obj)
    print(res.get("name"),type(res.get("_id")),type(res))

    import json
    res_json = json.dumps(res)
    print(res_json)

    增加数据
    res = MONGO.user_info.insert_one({"name":"pymongo","age":666})
    print(res,res.inserted_id)

    res = MONGO.user_info.insert_many([{"name":"pymongo","age":666},{"name":"pymongo","age":666}])
    print(res,res.inserted_ids)

    for doc in res:
    print(doc)

    修改数据
    res = MONGO.user_info.update_many({"age":666},{"$set":{"name":"pydwb","age":999}})
    print(res,dir(res),res.raw_result)

    删除数据
    res = MONGO.user_info.delete_one({"id":20})
    res = MONGO.user_info.delete_many({"name":1})
    print(res,dir(res),res.raw_result)

    skip sort limit

    res = list(MONGO.user_info.find({}).limit(5))
    print(len(res))

    res = list(MONGO.user_info.find({}).limit(5).skip(5))
    print(len(res),res)

    res = list(MONGO.user_info.find({}).sort("age",pymongo.DESCENDING))
    print(res)

    res = list(MONGO.user_info.find({}).sort("age",pymongo.DESCENDING).skip(5).limit(2))
    print(res)

    python 的 update
    res = MONGO.user_info.find_one({"name":"200wansui"})
    print(res)
    res.get("info")["shengao"] = 170
    res.get("info")["tizhong"] = 130
    res.get("info")["long"] = 18.5

    MONGO.user_info.update_one({"_id":res.get("_id")},{"$set":res})
    res = MONGO.user_info.find_one({"name":"200wansui"})
    print(res)

  • 相关阅读:
    SlidingMenu官方实例分析2——BaseActivity
    SlidingMenu官方实例分析1——ExampleListActivity
    SlidingMenu——使用前的配置
    获得String形式日期的后一天
    android中TabHost和RadioGroup
    android中文字斜着显示
    OpenGL ES andoid学习————2
    OpenGL ES andoid学习————1
    Gallery学习————检测手机中是否存在外部存储设备
    Java读取xml数据
  • 原文地址:https://www.cnblogs.com/jasonblogrecord/p/Mongodb.html
Copyright © 2011-2022 走看看