zoukankan      html  css  js  c++  java
  • Mongodb查询命令详解

    前面我们简单的讲了下find方法,下面来深入的过一下它的用法以及常用的字方法。

    下面是mongo中db.user.help()中对find方法的定义和解释:

    db.user.find([query],[fields]) - query is an optional query filter. fields is optional set of fields to return.
                                                          e.g. db.user.find( {x:77} , {name:1, x:1} )

    其中fields参数的意图是要显示/不显示的字段列表,不赋值则返回全部字段(_id字段默认返回)。

    其中key:flag(0/1)中flag==1表示该字段返回,除了_id字段外,指定的其他字段的flag值必须都一样

    例:

    /**
    查找age==28的记录的_id,name,sex
    **/
    db.user.find({age:28},{name:1,sex:1})
    /**
    该查询会报错,因为age必须为1,为0的话其实就不需要写
    **/
    db.user.find({age:28},{name:1,sex:1,age:0})
    /**
    查找age==28的记录的name和sex,_id字段不需要返回
    **/
    db.user.find({age:28},{name:1,sex:1,_id:0})

    在数据库的where查询中的比较操作符常用有如下2类:

         ①: >, >=, <, <=, !=, =。

         ②:and,or,in,not in

    在mongodb中也提供了对这些常用操作符的支持,

    1、"$gt", "$gte", "$lt", "$lte", "$ne"对应了>, >=, <, <=, !=,上面的=没有特殊关键字,直接使用key:value即可。

    2、 "$or", "$in","$nin"对应了or,in,not in,上面的and没有特殊关键字,直接使用逗号分隔的就是and。

    /**
    查询age>30的用户
    **/
    db.user.find({age:{$gt:30}})
    /**
    查询age<15的用户
    **/
    db.user.find({age:{$lt:15}})
    /**
    查询name in ("haha","hehe","jingli")的用户
    **/
    db.user.find({name:{$in:["haha","hehe","jingli"]}})
    /**
    查询 name in ("haha","hehe","jingli") and (age<15 or age>30)的用户
    **/
    db.user.find({name:{$in:["haha","hehe","jingli"]},$or:[{age:{$lt:15}},{age:{$gt:30}}]})

    3、使用正则表达式查询

    /**
    查询名字以h开头的用户
    **/
    db.user.find({name:/^h/})

    4、使用$where来自定义JS的Function来匹配

    /**
    查询age>30 || age<10的用户
    **/
    db.user.find({$where:function(){return this.age>30 || this.age<10}})

  • 相关阅读:
    harbor docker
    dns服务器
    k8s
    frps
    svn 搭建
    phpstrom 破解 转载https://www.jianshu.com/p/e71361b3bfee
    公开课
    k8s
    rsync各种备份
    定时任务
  • 原文地址:https://www.cnblogs.com/yangzhilong/p/9048349.html
Copyright © 2011-2022 走看看