zoukankan      html  css  js  c++  java
  • 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 :
        
        查询关键字:
            $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]}}) #子集查询
        
    
    -----------------------------------------
    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
         
    
        

    总结

    mongodb中的update修改器: $inc   $set  $unset  $push  $pull
    $inc : 对查询的结果对原有的基础上增加或者减少
    db.user_info.updateOne({age:27},{$inc:{age:1}})
    db.user_info.updateOne({age:28},{$inc:{age:-8}})
    $set: 直接替换原来的值, 对原有的数据增加一个field
    db.user_info.updateOne({},{$set:{test_list:[1,2,3,4,5,6,7,8]}})
    db.user_info.updateOne({age:20},{$set:{age:21}})
    $unset: 用来删除key(field)的
    db.user_info.updateOne({id:1},{$unset:{name:1}})
    $push: 用来对Array(list)数据类型进行增加新元素,相当于append方法
    db.user_info.updateOne({id:1},{$push:{hobby:3}})
    $pull:对内部的数据进行删减, 删除array中的某一个元素
    db.user_info.updateOne({id:1},{$pull:{test_list:8}})
    $pop:指定删除array中的第一个或者最后一个元素, -1代表最前面, 1代表最后面
    db.user_info.updateOne({id:1},{$pop:{test_list:1}})
    $字符: 保存符合索引条件数据的下标
    db.user_info.updateOne({test_list:4},{$set:{"test_list.$":""}})
    object字典的操作
    db.user_info.updateOne({id:1},{$set:{"info.height":161}})
    db.user_info.updateOne({id:1},{$inc:{"info.weight":-7}})
    array+object的操作
    db.user_info.updateOne({"hobby.weight":100},{$set:{"hobby.$.height":164}})
    limit +skip +sort
    db.user_info.find().limit(2).skip(1).sort({ id:-1 })
    重点: limit +skip +sort执行是有优先级别的, sort>skip>limit
             skip + limit的优先级: 先skip再limit
  • 相关阅读:
    软件体系结构:二维分层、模块化和开放平台
    Unity手游之路<七>角色控制器
    Unity手游之路<四>3d旋转-四元数,欧拉角和变幻矩阵
    Unity手游之路<三> 基于Unity+Java的聊天室源码
    Unity手游之路<二>Java版服务端使用protostuff简化protobuf开发
    Unity手游之路<一>C#版本Protobuf
    Unity手游之路<八>自动寻路Navmesh之入门
    Unity手游之路<九>自动寻路Navmesh之高级主题
    Unity手游之路<十>自动寻路Navmesh之跳跃,攀爬,斜坡
    raise EnvironmentError("%s not found" % (mysql_config.path,)) EnvironmentError: mysql_config not found 解决办法
  • 原文地址:https://www.cnblogs.com/xiao-xue-di/p/9602841.html
Copyright © 2011-2022 走看看