zoukankan      html  css  js  c++  java
  • mongoDB使用

    MongoDB:文件型数据库 find() update() delete() insert()持久化

    redis:get set 默认持久化

    1.MongoDB是什么及其概念:

    #MongoDB是一个快速存储数据(JSON),并ORM操作的数据库
    #MongoDB是文件型数据库,不存在关系
    #MongoDB中基本上存储了大量的冗余数据
    #MongoDB中没有字段的概念
    #MongoDB是非常灵活的数据库
    
    #专有名词:
    #Mysql MongoDB
    #DB DB
    #Table Colletions Table概念
    #row Documents row概念
    #字段 Field 字段概念
    #_id 唯一概念
    
    #不存在即创建:
    #如果使用了不存在的对象即创建该对象

    2.MongoDB的存储结构:

    关系型数据库:
    
    #id name age course score score1
    
    #1 子龙 84 python 99 0
    #2 xiaoqinglong 73 javascript 0 99
    
    文件型数据库:
    [
        {
            _id:ObjectId("1298478375f8234d")
            ids:1,
            names:子龙,
            ages:84,
            courses:python,
            scores:99
        },
        {
            id:2,
            name:xiaoqinglong,
            age:73,
            course:javascript,
            score1:99
        }
    ]
    View Code

    3.初识MongoDB

    #1.安装mongoDB bin目录环境变量
    #2.启动mongoDB:
    #mongod (手动创建文件夹) c:datadb
    #mongod --dbpath "E:Program FilesMongoDBdatadb"
    #3.MongoDB的默认端口号:27017  (redis:6379 MySql:3306)

    4.mongodb 的指令:

    #show dbs 查看当前数据库服务器中的所有数据库(DB)
    #use dbname 创建或使用数据库
    #db 查看当前使用的数据库 / 代指当前使用的数据库的名字或对象 
    #show tables 查看当前数据库的 数据表 Collations

    5.MongoDB的增删改查:

    #增:
    #db.Collations.insert({"name":"zilong"}) 
    #db.Collations.insert([{"name":"zilong"},{"name":"123"}]) 
    #// insert 方式 被官方不推荐了
    #1.db.Collations.insertOne({}) 只能单行操作插入
    #2.db.Collations.insertMany([{},{}]) 根据array(列表)中的元素插入多行数据
    #改:
    #db.user.update({"name":"酸菜"},{$set:{"name":"老坛酸菜"}})
    #db.user.update({"name":"酸菜"},{$set:{"name":"老坛酸菜"}},多条修改:true)
    #// update 方式 被官方不推荐了
    #db.user.updateOne({"name":"子龙"},{$set:{"name":"赵子龙"}})
    #db.user.updateMany({"name":"小青龙"},{$set:{"name":"白虎"}})
    #删除:
    #db.user.remove({})
    #// remove 方式 被官方不推荐了
    #db.user.deleteOne({"name":"白虎"})
    #db.user.deleteMany({"name":"翠花儿"})
    #查:
    #1.db.find({条件:1})
    #2.db.findOne({条件:1})
    #db.user.findOne({"name":"酸菜","age":1}) 逗号相当于 and
    
    #3.数学比较符:
    #$lt 小于
    #$gt 大于
    #$lte 小于等于
    #$gte 大于等于
    #find({"字段":{$比较符:值}})
    #db.user.find({"age":{$gt:2}}) # where age > 2

    6.修改器:

    #$set : 将某个key的value 修改为 某值
    #$unset: 删除字段 {$unset: {test: "" }}
    #$inc:{$inc:{"age":100}} 原有值基础上增加 xxx
    #array:
    #$push : 向数组Array最后位置插入一条元素 {$push:{"hobby":1234}} [].append(1234)
    #$pull : 删除数组中的某一个元素 {$pull:{"hobby":123}} 
    #删除字典 #db.user.updateOne({"_id":ObjectId("5b98794ec34b9812bcabdde7"),"hobby.age":18},{$unset:{"hobby.$":1}})
    #$pop : 删除数组的第一个或最后一个 
    #最后一个:{$pop:{"hobby":1}} 
    #第一个:{$pop:{"hobby":-1}} 
    #$ :代指符合条件的某数据 array.$ :
    #db.user.updateOne({"_id":ObjectId("5b98794ec34b9812bcabdde7"),"hobby.name":"翠花儿"},{$set:{"hobby.$.name":"农妇山泉"}})
    #查询$关键字:
    #$in: db.user.find({age:{$in:[1,2,3]}}) 字段符合in,array中的数值
    #$or: db.user.find({$or:[{age:{$in:[1,2,3,4]}},{name:666}]})
    #$all: db.user.find({test:{$all:[1,2]}}) array元素相同即可 或 包含所有$all中的元素

    7.数据类型:

    #基于BSON结构
    #string 字符串,Utf8
    #integer 整型
    #double 双精度,包含float,MongoDB中不存在Float
    #Null 空数据类型
    #Date 时间类型 ISODate(2018-9-12 10:45:58)
    #Timestamp 时间戳类型 ISODate("123123")
    #ObjectId 对象ID Documents 自生成的 _id #ObjectId("5b98794ec34b9812bcabdde7")
    #"5b151f85" 代指的是时间戳,这条数据的产生时间
    #"364098" 代指某台机器的机器码,存储这条数据时的机器编号
    #"09ab" 代指进程ID,多进程存储数据的时候,非常有用的
    #"2e6b26" 代指计数器,这里要注意的是,计数器的数字可能会出现重复,不是唯一的
    #以上四种标识符拼凑成世界上唯一的ObjectID
    #只要是支持MongoDB的语言,都会有一个或多个方法,对ObjectID进行转换
    #可以得到以上四种信息
    #不能够被 JSON 化
    #from BSON import ObjectId
    #?arrays [] 数组类型 相当于python中的list $pop $push $pull
    #?object {name:1} 对象类型 相当于python中的dict
    #ps:由于MongoDB存储自由度没有限制,所以我们程序员要定义好数据格式,尽可能少的修改格式(开发阶段随便修改)

    8. 排序 跳过 显示条目

    #sort 排序 find().sort(id:-1/1) 1 升序 2 降序 desc
    #skip 跳过 find().skip(2) 从三条开始返回
    #limit 显示条目 find().limit(2)只显示前两条
    #混搭:
    #db.user.find({}).sort({age:-1 }).skip(1).limit(2)
    #根据age字段进行降序排列,并且跳过第一条,从第二条开始返回,两条数据

    9.pymongo:

    #sort("age",pymongo.DESCENDING)
  • 相关阅读:
    JavaScript跨域总结与解决办法
    css IFC 与 BFC分析
    JavaScript Note
    Knowledge Architecture
    BSP
    Olympiad
    Software Engineering
    Assembly Language
    Algorithm
    Data Structure
  • 原文地址:https://www.cnblogs.com/chongdongxiaoyu/p/9635329.html
Copyright © 2011-2022 走看看