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}})

  • 相关阅读:
    electron之打包成安装程序
    electron之环境安装、启动程序
    微信支付.net官方坑太多,我们来精简
    微信支付官方.net版之坑你没商量
    程序员出路在何方
    简单介绍
    mac中显示隐藏文件
    sublime Text 3 安装emmet
    Andriod学习笔记5:通过NDK在C++中实现日志输出
    Andriod学习笔记4:mac下搭建 Eclipse+CDT 集成开发环境
  • 原文地址:https://www.cnblogs.com/yangzhilong/p/9048349.html
Copyright © 2011-2022 走看看