• MongoDB


    一、安装和启动

    默认监听端口:27017

    添加环境变量

    启动:mongod --dbpath=="d:/data/db"

    可视化工具:NoSQLBooster for MongoDB

    二、介绍

    mongoDB是一个NoSQL文件型数据库,非常自由,只要是JSON格式的都能存储。

    数据类型:ObjectID、string、boolean、int、double、arrays、object、null、timestamp、date

    objectID:前八位是时间戳,后八位是机器的机器码,后四位是进程id,后六位是计数器,这四个值拼成世上唯一的id

    三、基本命令

    在mongo中,使用了不存在的对象即创建该对象,如果这个对象是空的库或表,则先写在内存中,等有数据时再写入磁盘中。

    show databases  查询本地数据库(磁盘中)
    use db_name  切换当前数据库
    db  查看当前使用的数据库
    show tables  查看当前数据库中的表(磁盘中)
    
    use 不存在的数据库名即创建数据库(内存中)
    db.不存在的表即创建表(内存中)
    # 增
    db.tablename.insert({}) 
    db.tablename.insert([{},{}])  插入多条
    db.tablename.insertOne({})  推荐
    db.tablename.isnertMany({})  推荐
    
    # 删
    db.tablename.remove({查询条件})  # 不指定条件则删除全部数据
    db.tablename.deleteOne({})
    db.tablename.deleteMany({}) # 改 db.tablename.
    update()
    db.tablename.updateOne({}.{})
    db.tablename.updateMany({},{})
    $关键字还用来存储当前Array符合条件的元素的下标
    db.tablename.updateOne({name:"123",hobby:"睡觉"},{$set:{"hobby.$":"吃饭"}}) 可以直接把hobby列表中的睡觉改为吃饭
    db.tablename.updateOne({name:"123"},{$set:{"student.name":"123"}}) 可以直接修改字典
    修改都基于$修改器 $
    set 强制将某字段修改,如果该字段不存在则创建 db.tablename.update({name:"123"},{$set:{name:"321"}}) $unset 清空并删除字段 db.tablename.update({name:"321"}, {$unset:{name:1}}) $inc 引用增加 db.tablename.update({name:"123"},{$inc:{age:1}}) $push $pushAll $pull $pullAll 针对Array操作,删除会删掉所有符合操作的 $pop 删除第一条或最后一条 # 查 db.tablename.find({查询条件}) db.tablename.findOne({xxx}) #返回第一条,json数据 $数字比较符,只能用于数字 $gt 大于 $lt 小于 $gte大于等于 $eq 等于 $ne 不等于 db.tablename.find({age:{$gt:70}})
    $and $or
    db.tablename.findOne({$and:[{条件},{条件}]})
    $in $all
    db.tablename.findOne({name:{$in:[1,2,3]}})

    选取、跳过、排序

    顺序:排序》跳过》选取(可以用来做分页)
    # 排序
    db.tablename.find({}).sort({age:-1})
    
    # 跳过
    db.tablename.find({}).skip(2)
    
    # 选取
    db.tablename.find({}).limit(2)

    四、PyMongo

    from pymongo import MongoClient
    MC = MongoClient("127.0.0.1", 27017)
    db = MC["dbname"]  # 创建或选择数据库
    
    player_info = {
        "name": "xxx"
    }
    
    #
    res = db.player.insert_one(player_info)  
    res.inserted_id
    es.inserted_ids  # 返回一个objectID对象,不能被序列化,但是能转换成字符串
    
    #
    res = db.player.find({})  # 返回一个列表
    res = db.player.find_one({"age":{"$gt":18}})  # 返回符合条件的第一个数据,是一个字典
    
    #
    res = db.player.update_one({"name":"123"}, {"$set": {"name":"321"}})
    
    #
    from bson.objectid import ObjectId
    res = db.player.delete_one({"_id":ObjectId"xxxx"})
    
    # 排序
    from pymongo import ASCENDING, DESCENGING  # 其实就是1和-1
    db.player.find({}).sort("_id", ASCENGING)
    res.delete_count  # 删除的数量
  • 相关阅读:
    《易中天中华史》——易中天
    《易中天品三国》——易中天
    Excel 实现多列文本合并/合并单元格内容 的三种方法
    Excel函数OFFSET的用法、举例
    【转】链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 返回了消息 "未指定的错误"。+SQL Server Management Studio中访问EXCEL 2007(XLSX)文件的方法
    SQL 2005启用组件Ad Hoc Distributed Queries
    FTP 550 Permission denied 只能建文件夹,没法删除及上传文件的原因说明
    Access中"''80004005''"操作必须使用一个可更新的查询"错误的解决办法
    修改 打开方式为Excel
    VMware10新建虚拟机
  • 原文地址:https://www.cnblogs.com/yinwenjie/p/12457377.html
Copyright © 2020-2023  润新知