zoukankan      html  css  js  c++  java
  • MongoDB之数据库命令操作(二)

    现在详细学习一下mongodb的数据库操作。

    查询语句

    db.xxx(集合name).find() # 查询
    db.xxx(集合name).findOne() # 只返回一个
    db.xxx(集合name).findOne().pretty() # 返回结果格式化
    
    # 比较运算符
    等于,默认是等于判断,没有运算符,如:db.xxx(集合name).find({name:"xiao"})
    小于$lt,如:db.xxx(集合name).find({age:{$lt:30}})
    小于或等于$lte,如:db.xxx(集合name).find({age:{$lte:30}})
    大于$gt,如:db.xxx(集合name).find({age:{$gt:30}})
    大于或等于$gte,如:db.xxx(集合name).find({age:{$gte:30}})
    不等于$ne,如:db.xxx(集合name).find({age:{$ne:30}})
    
    # 逻辑运算符,即多条件查询
    db.xxx(集合name).find({age:{$ne:30}, name:"xiaoming"}) # 默认逻辑与
    db.xxx(集合name).find({$or:[{age:{$ne:30}, name:"xiaoming"}]}) # 默认逻辑或
    
    # 范围查询
    db.xxx(集合name).find({age:{$in:[18,30]}}) # 在某个范围
    db.xxx(集合name).find({age:{$nin:[18,30]}}) # 不在某个范围
    
    # 正则$regex
    db.xxx(集合name).find({name:{$regex:"^x"}})
    
    # 函数查询$where,使用this代表本集合
    db.xxx(集合name).find({$where:function(){return this.age < 10}})
    
    # 限制返回数量
    db.xxx(集合name).find().limit(3)
    # 查询偏移
    db.xxx(集合name).find().skip(3) # 从第4条开始返回
    
    # 循环
    for(i=0;i<15;i++){db.xxx(集合name).insert({_id:i*2})}
    
    # 查询返回一些字段,需要返回设置1,不需要设置0
    db.xxx(集合name).find({},{name:1,age:0})
    
    # 排序sort(),1位升序,-1为降序
    db.xxx(集合name).find().sort({name:-1})
    # 返回个数count()
    db.xxx(集合name).count({name:"xiaoming"})
    # 去重
    db.xxx(集合name).distinct("name",{})
    

    聚合函数

    • 语法:db.集合名称.aggregate({管道:{表达式}})
    # 管道
    $group:将集合中的文档分组,可用于统计结果
    $match:过滤数据,只输出符合条件的文档
    $project:修改输入文档的结构,如重命名、增加、删除字段、创建计算结果
    $sort:将输入文档排序后输出
    $limit:限制聚合管道返回的文档数
    $skip:跳过指定数量的文档,并返回余下的文档
    $unwind:将数组类型的字段进行拆分
    
    # 表达式
    $sum:计算总和,$sum:1同count表示计数
    $avg:计算平均值
    $min:获取最小值
    $max:获取最大值
    $push:在结果文档中插入值到一个数组中
    $first:根据资源文档的排序获取第一个文档数据
    $last:根据资源文档的排序获取最后一个文档数据
    

    索引

    • 1表示升序,-1表示降序

    • 语法结构:db.COLLECTION_NAME.ensureIndex(keys[,options])

    keys,要建立索引的参数列表。如:{KEY:1},其中key表示字段名,1表示升序排序,也可使用使用数字-1降序。
    options,可选参数,表示建立索引的设置。可选值如下:
    
    background,Boolean,在后台建立索引,以便建立索引时不阻止其他数据库活动。默认值 false。
    unique,Boolean,创建唯一索引。默认值 false。
    name,String,指定索引的名称。如果未指定,MongoDB会生成一个索引字段的名称和排序顺序串联。
    dropDups,Boolean,创建唯一索引时,如果出现重复删除后续出现的相同索引,只保留第一个。
    sparse,Boolean,对文档中不存在的字段数据不启用索引。默认值是 false。
    v,index version,索引的版本号。
    weights,document,索引权重值,数值在 1 到 99,999 之间,表示该索引相对于其他索引字段的得分权重。
    
    # 创建普通索引
    db.集合.ensureIndex({属性:1})
    
    # 创建唯一索引,实现唯一约束的功能
    db.集合.ensureIndex({"name":1},{"unique":true})
    
    # 创建联合索引
    db.集合.ensureIndex({name:1,age:1})
    
    #查看集合所有索引
    db.集合.getIndexes()
    
    # 删除索引
    db.集合.dropIndex('索引名称')
    db.集合.dropIndexs() # 删除集合所有的索引
    
  • 相关阅读:
    4、Android-数据存储方案(文件存储/SharedPreferences)
    3、Android-全局大喇叭-广播机制
    2、Android-UI(关于Nine-Patch图片)
    2、Android-UI(RecyclerView)
    2、Android-UI(自定义控件&ListView)
    2、Android-UI(布局待完成)
    2、Android-UI(常用控件)
    1、Android-活动(下)
    1、Android-活动(上)
    8、Spring Cloud-配置中心 Spring Cloud Config(待补充)
  • 原文地址:https://www.cnblogs.com/cwp-bg/p/9391629.html
Copyright © 2011-2022 走看看