基础

作者: 汤汤汤汤汤雪林 | 来源:发表于2017-02-17 12:04 被阅读0次

    关键词

    database           数据库
    collection           数据库表/集合
    document          数据记录行/文档
    field                   数据字段/域
    index                 索引
    primary              主键,MongoDB将_id作为主键
    

    MongoDB - 连接

    mongod --fork --logpath://log_path --datapath://data_path

    MongoDB - 操作

    数据库操作:

    use db_name                 #切换到da_name数据库,不存在则创建数据库
    show dbs                    #查看所有数据库(没有数据的库除外)
    db.dropDatabase()           #删除当前数据库
    db.collection.drop()        #删除集合
    db.collection.remove({})    #清空集合
    

    文档(数据)操作:

    db_name.insert({'name':'value'})     #插入数据
    db.collection.insert(document)       #插入文档
    
    db.collection.update(
        <query>,  #查询条件
        <update>,  #update对象和操作符
        {
            upsert: <boolean>,        #可选,如果记录不存在是否插入新对象,默认False
            multi: <boolean>,         #可选,默认只更新找到的第一条记录,默认为False
            writeConcern: <document>  #可选,抛出异常的级别
        }
    )
    
    db.collection.save(
        <document>,                   #用来替换的文档数据
        {
            writeConcern:<document>   #可选,抛出异常的级别
        }
    )
    
    db.collection.remove(
        <query>,    #删除条件
        {
            <justOne>,               #可选,如果设置为True或1,则只删除1条
            <writeConcern: <document> #可选,抛出异常的级别
       }
    )
    
    db.collection.find()              #非格式化显示所有数据
    db.collection.find().pretty()     #格式化显示所有数据
    db.collection.findOne()           #只查询一条数据
    

    查询条件语句 query

    db.collection.find({'by':'value'}).pretty()           #by "= value"
    db.collection.find({'likes': {$lt: 50}}).pretty()     # likes < 50 
    db.collection.find({'likes': {$lte: 50}}).pretty()    # likes <= 50
    db.collection.find({'likes': {$gt: 50}}).pretty()     # likes > 50
    db.collection.find({'likes': {$gte: 50}}).pretty()    # likes >= 50
    db.collection.find({'likes': {$ne: 50}}).pretty()     # likes != 50
    
    

    操作符 $

    db.collection.find({'by':'value'}, {'like': {$lt:50}}).pretty()  #find可以传入多个参数
    
    db.collection.find(
        {
            $or:[                    # $or 操作符,满足后续任一条件则输出
                {key1: value1}, {key2: value2}
            ]
        }
    ).pretty()
    
    db.col.find({"likes": {$gt:50}, $or: [{"by": "by1"},{"title": "title1"}]}).pretty()
    # and 与 or 联用,组合查询
    
    db.collection.find({'title' : {$type: 2}})    #type操作符,判断指定属性类型,较少用
    
    db.collection.find().limit(num)    #limit操作符,指定输出数据数量
    db.collection.find().skip(num)     #skip操作符,跳过指定数量后查询
    
    db.collection.find().sort(1/-1)    #sort排序,1为升序,-1降序
    

    索引 index

    添加索引可以有效的加快指定数据的查询速度

    db.collection.ensureIndex({key: 1})           #创建索引
    

    聚合 aggregate

    主要用于处理数据,统计、求和、平均值等

    db.collection.aggregate(AGGREGATE_OPERTION)  # 基本格式
    
    db.collection.aggregate(
        [
            {
                $group :         #给查询后的数据分组标识
                    {
                        _id : "$user",    #格式化输出,user
                        num_tutorial : {$sum : 1}    #计算总和
                    }
             }
        ]
    )
    $sum: 计算综合
    $avg: 计算平均值
    $min: 获取集合的最小值
    $max: 获取集合的最大值
    $push: 在结果文档中插入值到一个数组
    $addToSet: 在结果文档中插入值到一个数组中,不创建副本
    $first: 根据排序获取第一个文档数据
    $last: 根据排序获取最后一个文档数据
    

    相关文章

      网友评论

          本文标题:基础

          本文链接:https://www.haomeiwen.com/subject/lelhwttx.html