zoukankan      html  css  js  c++  java
  • mongdb查询操作

    1、db.table.find() 查询所有信息 db.table.findOne()查询第一个信息
    2、db.table.find({条件},{要显示列}) db.table.find({},{_id:0,name:0})查询不现实_id和name其他的都显示出来
    3、查询条件{age:{$gte:22,$lte:30}} ==>age>=22 and age<=30
    $lt(<)、$lte(<=)、$gt(>)、$gte(>=)、$ne(!=) ----db.table.find({age:{$gte:20,$lte:30}},{_id:0})
    $in和$nin 只能作用于数组范围 db.table.find({name:{$in:['123','456']}},{_id:0});
    $or操作用$or:[{where},{where:{}}] db.table.find({$or:[{age:{$gte:20}},{id:{$gte:100}}]},{_id:0})
    $not 取返操作,可以作用任何表达式中,db.table.find({name:{$not:/li/}},{_id:0});
    还可以正则处理查询 db.table.find({name:/mongodb/},{_id:0})
    $all 数组查询必须全部包含db.table.find({array:{$all:['mongodb','js','java']}},{_id:0}) array中必须全部包含mongod js java才会出来
    根据数组下标查询db.table.find({'array.1':'mongodb'},{_id:0}) 查询出array数组中第一个元素是mongodb的集合
    $size根据数组的长度查询db.table.find({array:{$size:3}},{_id:0}) 不能和其他比较符操作 比如 > 或者<操作
    但是可以在文件中添加一个key:记录数组的大小.以后数组每次添加一个元素或者减少一个元素让这个添加的key加1和减1
    $slice 数组范围查询,只显示数组中的几个数组db.table.find({name:'h'},{array:{$slice:[1,3]},_id:0}) 只显示array中下标是1-3的数据
    显示数组最后的一个元素{$slice:-1}db.table.find({name:'h'},{array:{$slice:-1},_id:0})
    当数组中有多个对象的查询array:[{name:2},{name:1}] 可以使用对象.的方式db.table.find({'array.name':'1'},{_id:0})
    $elemMatch数组的查询一般使用这个查询,db.table.find({array:{$elemMatch:{obj:'1',s:'A'}}})
    4、$where 复杂的查询条件,性能不太高.查询器可以根函数db.table.find({"$where":function(){}})
    5、limit() 查询文件中前几条数据db.table.find({},{_id:0}).limit(2)
    6、skip() 跨跃几条也就是从几条数据开始查询db.table.find({},{_id:0}).limit(2).skip(5) 从第5条开始查,查询2条 和limit可以实现分页
    7、sort()排序1正序-1倒序 db.table.find({},{_id:0}).sort({age:-1}) mongodb中的文档key是不规则的
    mongodb的key可以存储不同类型数据,排序也会有优先级
    最小值 > null > 数字 > 字符串 > 对象/文档 >数组 > 数组 >二进制>对象ID>boolean>日期>时间戳>正则>最大值
    8、skip()分页性能问题可以在文档上添加一个日期,db.table.find({date:{$ge:日期值}},{_id:0}).limit(10)
    9、游标遍历数据
    游标销毁条件1、默认超过10分钟没用销毁2、游标迭代完成3、客户端发来信息销毁
    var data=db.table.find();
    while(data.hasNext()){
    var o = data.next();
    print(o);
    }
    10、查询快照db.table.find({$query:{name:'11'},$snapshot:true})
    11、高级查询
    $query、
    $orderby、
    $maxscn、最多扫描的文档数
    $min、查询开始
    $max、查询结束
    $hint、使用那个索引
    $explain:boolean 统计
    $snapshot:boolean 一致快照
  • 相关阅读:
    Android应用中使用自定义文字
    Linux下diff使用简介
    Android扫描SD卡中的文件
    onActivityResult不起作用?可能是和你的launchMode有关!
    修改SlidingMenu,使其能够完美运行
    eclipse快捷键说明
    XP下Virtualbox虚拟Ubuntu共享文件夹设置
    记一次调用RefreshObjectCaches刷新节点上的文件内容
    idea快捷键之遍历
    word转pdf
  • 原文地址:https://www.cnblogs.com/houqijun/p/7668913.html
Copyright © 2011-2022 走看看