zoukankan      html  css  js  c++  java
  • MongoDB

    参考链接:https://www.cnblogs.com/DragonFire/p/9135630.html

    mongode

    它和我们使用的关系型数据库最大的区别就是约束性,可以说文件型数据库几乎不存在约束性,理论上没有主外键约束,没有存储的数据类型约束等等

    关系型数据库中有一个 "表" 的概念,有 "字段" 的概念,有 "数据条目" 的概念

    MongoDB中也同样有以上的概念,但是名称发生了一些变化,严格意义上来说,两者的概念即为相似,但又有些出入,不过无所谓,我们就当是以上概念就好啦

    使用了不存在的对象即创建该对象
        1.增加:
            官方不推荐写法:
                insert([{},{},{}]) 
            官方推荐写法:
                insertOne({})
                insertMany([{},{},{}])
        
        2.删除:
            官方不推荐写法:
                remove({}) # delete
            官方推荐写法:
                deleteOne({})
                deleteMany({})
                
        3.修改:
            $修改器
            官方不推荐写法:
                update({},{$set:{}})
                
            官方推荐写法:
                updateOne({},{$set:{}})
                updateMany({},{$set:{}})
        
        4.查询
            find({条件})
            findOne({条件})
    $: 存储 符合条件的列表元素的下标索引 hobby.$ : 1
        $关键字:
            $lt
            $gt
            $lte
            $gte
            $eq :
            
            $all 满足所有元素的数据 $all:[1,3,2]
            $in 满足其中一个元素的数据 $in:[1,2,5,6]
            $or 满足其中一个字段的数据 $or:[{name:1},{age:2}]
        
        $修改器:
            $set 直接将Key设定为value
            $inc 将Value加在 Key对应的value上
            $unset 删除字段(field)
            
            Arrays:
            $push list.append() 添加元素
            $pull list.remove() 删除指定元素
            $pop list.pop() 删除最后一个:1 或者 第一个:-1
        
    MongoDB:
        表        table    Collections
        字段    Colum    Fields
        行        Row        Documents
        
        db.表名(Collections).操作(参数)
        
        $关键字:
            $lt 小于
            $gt    大于
            $lte 小于等于
            $gte 大于等于
            $eq : 等于
            
            
        针对Field的$修改器
        $set 修改器之一 设定 将某Key设定为某值:
            $set:{name:"alexdsb"}
        $unset:删除当前的Fields
        
        $inc 在原有值基础上增加
            {$inc:{age:1}} 在年龄原有基础上加一岁
        
        针对Arrays的$修改器
        $push 在Arrays中添加一个元素
            {$push: {hobby:"养生"}} 在Hobby中添加一个“养生”
        
        $pull 在Arrays中删除一个元素
            {$pull: {hobby:"抽烟"}} 在Hobby中删除一个“抽烟”
            
        $pop 在Arrays中删除最后一个元素或第一个元素
            {$pop:{myczdyy:-1}} 在myczdyy中删除第一个元素
            {$pop:{myczdyy:1}} 在myczdyy中删除最后一个元素
            
        db.user.updateOne({name:"yinwangba",hobby:"喝酒"},{$set: {"hobby.$":"啤酒泡枸杞"}})
        $ : 存储 满足前置条件列表元素的下标索引
        
        混搭用法:
            db.user.updateOne({name:"yinwangba"},
            {$set:{course:[
                {course_name:"Python",score:101},
                {course_name:"Vue.js",score:2},
                {course_name:"MySQL",score:98},
            ]}})
    
            db.user.updateOne({name:"yinwangba","course.course_name":"Vue.js"},{$inc: {"course.$.score":10}})
        
        
        查询$关键字:
            $all #满足所有元素的数据
                db.user.find({myczdyy:{$all:[1,3]}})
            $in    #满足其中一个元素的数据
                db.user.find({myczdyy:{$in:[1,3]}})
            $or #满足其中一个字段的数据
                db.user.find({$or:[{name:"yinwangba"},{age:{$gt:70}}]})
                
        
        limit(x):
            只查询前x条数据
        skip(x):
            条多前x条数据
        sort({ id:-1 }):
            根据id字段进行倒序排列:-1  正序排列:1
            
        db.user.find({}).sort({ id:-1 }).limit(3).skip(6)
        
    一.MongoDB 之 丰富多彩的数据类型世界
    
    首先我们要先了解一下MongoDB中有什么样的数据类型:
    
    Object  ID :Documents 自生成的 _id
    
    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类型,时间戳可以秒杀一切时间类型)
    
    看着挺多的,但是真要是用的话,没那么复杂,很简单的哦
  • 相关阅读:
    Serveral effective linux commands
    Amber learning note A8: Loop Dynamics of the HIV-1 Integrase Core Domain
    amber初学……
    anaconda使用
    python中的一些语法
    python中的OOP
    python中的模块
    将python程序打包成exe
    python-执行过程
    python基础
  • 原文地址:https://www.cnblogs.com/hnlmy/p/10790162.html
Copyright © 2011-2022 走看看