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

看着挺多的,但是真要是用的话,没那么复杂,很简单的哦
原文地址:https://www.cnblogs.com/hnlmy/p/10790162.html