• mongodb高级应用


    一、  高级查询

    1. 查询操作符
      1. 条件操作符:db.collection.find({“field”:{$gt/$lt/$gte/$lte/$eq/$ne:value}});
      2. 匹配所有:db.collection.find({age:{$all:[6,8]}});//字段的数组中符合全部条件才行。
      3. 判断字段存在:db.colletion.find({field:{$exists:true}})//还可用于remove等。
      4. Null值的处理:db.collection.find({field:{“$in”:null,”$exists:true}});
      5. 取模运算:db.colletion.find({field:{$mod:[10,1]}});
      6. $ne不等于
      7. $in包括
      8. $nin不包括    //$ini和$ne的区别就是ini用于数组检测
      9. $size匹配数组元素个数
      10. Count查询记录条数:db.field.find().count();
      11. Skip显示返回记录的起点:db.students.find().skip(4),跳过前面4条
      12. Sort排序
      13. Distinct去重:db.collection.distinct(“field”);查看某字段值的种类。
      14. Group分组统计
    2. 查询语法
      1. 数组内容的查询:通过查询数组的一个属性,可以查出整条文档。
      2. 内嵌文档的查询:查询文档中field字段中name属性可以find({“field.name”:*});
      3. 正则表达式匹配查询
      4. $where查询:命令中不包括where关键字
    3. 联合查询
      1. 步骤

    1           u=db.user.findOne({author:“ken”});

    2           for(var p=db.posting.find({author:u.author});p.hasNext();) {printjson(p.next().title)};

    3           上面的解析:先通过名称找出文档,再通过获得的文档中的名称打印title

    1. 游标和存储过程
      1. 游标:结果缓存再读取
      2. 存储过程

    1           声明:db.system.js.save({_id: addNumbers value:funtion(x,y){return x+y}});

    2           通过id调用:db.eval(‘addNumbers(3,4)’);

    3           声明后直接调用:db.eval(function(){return 3+3});

    二、  高级更新

    1. 数据更新命令
      1. Update:db.collection.update(criteria,objNew,upsert,multi)

    1           Criteria:此处填写查询条件

    2           objNew:用$inc的操作

    3           upsert:逻辑操作决定在更新操作的时候,没有符合条件的时候是否插入。

    4           multi:按照条件查找的多多条的时候,决定多条记录是否同时更新。

    1. save:如果集合里面有同id的文档,将被覆盖,如果没有,就添加。
    2. 数据更新操作符
      1. $inc:{$inc:{field:value}} //对某个字段的数值作品加法
      2. $set:{$set:{field:value}} //直接修改某个字段的值
      3. $unset:{$unset:{field:1}} //删除字段
      4. $push:{$push:{field:value}} //针对数组类型添加值
      5. $pushAll:{$pushAll:{field:[value1,value2]}} //针对数组类型添加多个值
      6. $addToSet:{$addToSet:{field:[value1,value2]}} //针对数组类型添加数组
      7. $pop:{$pop:{field:-1}} //删除数组内的一个值
      8. $pull:{pull:{field:_value}} //从数组中删除一个等于value的值
      9. $pullAll:{pullAll:{field:[value1,value2]}} //可以一次删除数组内多个值
      10. $rename:{$rename:{old_name:new_name}} //字段重命名
    3. 高级特性
      1. Capped Collection

    1           先预定空间的大小,用完之后就老化溢出。

    2           发挥最大的性能,在记录日志不应该创建索引。

    3           发挥最大的性能,读比写多的时候不要在上面创建索引。

    4           Ps:log speed 是快,data speed 慢。

    1. GridFS规范

    1           海量存储

    1. 因为BSON的大小限制,大文件会分开。
    2. Files(包括元数据对象),chunks(二进制块)

    2           命令行工具

    1. Mongofiles put 上传
    2. Mongofiles get 下载
    3. MapReduce编程模型

    1           Map进行分组

    2           Reduce聚合计算

    3           Result获取结果

    4           Finalize格式化输出

    5           Options定制输出

  • 相关阅读:
    类例程_java战斗程序
    "类"的讲稿
    象棋中“车”的攻击范围_C#
    面向对象_方法_例题
    入门例子
    MyBatis
    MyBatis
    MyBatis
    Spring
    Hibernate学习
  • 原文地址:https://www.cnblogs.com/hodge01/p/6112485.html
Copyright © 2020-2023  润新知