MongoDB--操作符

  • $gt -- >
  • $lt -- <
  • $gte -- >=
  • $lte -- <=
  • $all 与 in 类似,不同的是必须满足[]内所有的值
  • $exists 字段是否存在 db.sun.find({"age":{"$exists":true}}) 查询存在age字段的数据,null 字段值为null和不存在查询字段的数据都会列出来 ,只查询值null的数据    db.sun.find({"age":{"$in":[null],"$exists":true}}) 存在这个字段并且值为null
  • $mod 取模运算(等同于C# %取余运算 10%3==1 ) db.sun.find({"age":{$mod:[10,0]}})  字段对10取模等于0的数据
  • $ne 不等于 db.sun.find({"age":{"$ne":10}}) 查询age字段不等于10的字段
  • $in 包含操作,等同于SQL 的in操作 db.sun.find({"name":{"$in":["sun","2","sunxueyang"]}})
  • $nin 不包含操作,等同于SQL not in 操作 db.sun.find({"name":{"$nin":["sun","2","sunxueyang"]}})
  •   $size 长度判断。 db.sun.find({"like":{"$size":2}}) 获取like数组长度是2的数据
  • /正则表达式/ 查询可以直接使用正则去处理 ,sun/=sun%   /sun/=%sun%  /sun=%sun
  • $where 可以传入查询条件执行。 db.sun.find({"$where":"this.age>1"}) this在执行时代表当前行数据
  • count() 获取查询数量
  • skip(10) 取第10条往后的数据
  • limit(5) 取查询出来的5条件  等同于top 5 ,与skip组合就可以变成分页查询,db.sun.find().skip(10).limit(10) 如果每页10条,这就是取的第2页数据,db.sun.find().skip((2-1)*N).limit(N).sort(field:1) 排序,当数据量比较大的时候,性能会比较低,建议采用,创建一个自增字段,分页时计算自增字段的最小数字,然后使用limit
  • sort() 排序函数  sort({age:1,name:-1}) 组合排序,根据age正序,根据name倒序,注意:如果正序排时,字段不存在的数据排在前面
  • 相同属性,值类型不同时,排序顺序为:

最小值

null

数字(整形、长整型、双精度)

字符串

对象、文档

数组

二进制数据

对象ID

布尔型

日期型

时间戳

正则表达式

最大值

  • distinct() 对指定字段进行去重  db.runCommand({"distinct":"表名","key":"指定列"}) 等同于 db.sun.distinct("name")
  • group() 分组
db.gtb.group({
 key:{age:1},
 cond:{age:{$gt:2}},
 reduce:function(){},
 initial:{}
})  等同于  select age,count(1) from gtb group by age

db.posts.group({
 "key" : {"day" : true}, //根据key分组,结果显示key
 "initial" : {"tags" : {}}, //初始化展示的tags文档对象
 "$reduce" : function (doc, prev) { //doc为当前行对象,prev为initial构建的对象
   for (i in doc.tags) { //遍历当前行的tags数组
     if (doc.tags[i] in prev.tags) { //如果当前行tags数组里面的数据存在于构建显示的对象里面,则进行统计+1,否则初始化为1
     //“prev”则代表“累加器文档”的累加状态
       prev.tags[doc.tags[i]]++;
     }
     else
     {
       prev.tags[doc.tags[i]] = 1;
     }
  }
 },
 "finalize":function(prev){ //针对每次reduce结束之后,对累加器文档进行操作
    for(i in prev.tags) //保留当前累加器大于2的数据
    {
      if(prev.tags[i]<2)
      {
        delete prev.tags[i];
      }
    }
 }
}) 等同于,先根据day时间分组,然后对分组之后得tags数组之内的内容进行统计,
  • next() 游标操作
var  cur =db.posts.find(); //当前为查询集合对象
while(cur.hasNext()){
print(cur.next()) //表示打印当前游标对象
}  等同于 cur.forEach(function(itm){print( itm )}) ,不同点为cur.next()是对象实体, itm 为对象引用
  • find() 查询,  find查询 在以对象形式出现的时候,并没有第一时间进行查询,而是等待真正查询时才去进行检索。例如:

      var res=db.posts.find()  //当前并未真正执行查询
      res.hasNext() //此时才真正出发查询
时间: 2024-08-18 11:51:16

MongoDB--操作符的相关文章

MongoDB操作符

{"cookie":"39828d2f-bffc-4818-883d-2e627f0b274d","shopId":"306072209435180713","platform":0,"viewDate":{$gte:1529567243000,$lte:1529636122171}} {viewDate:-1} 原文地址:https://www.cnblogs.com/wanhua-w

MongoDB $type条件操作符

描述 在本章节中,我们将继续讨论MongoDB中条件操作符 $type. $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果. MongoDB 中可以使用的类型如下表所示: 类型 数字 备注 Double 1   String 2   Object 3   Array 4   Binary data 5   Undefined 6 已废弃. Object id 7   Boolean 8   Date 9   Null 10   Regular Expression 11

Ruby操作MongoDB(进阶)-CRUD操作

MongDB数据库的使用离不开CRUD操作.什么是CRUD,就是创建文档,读取文档信息,更新文档和删除文档. key-value键值对标记 在MongoDB的Ruby驱动中,Key_value键值多次出现.而且有时会出现语法上的巧合,这取决于在使用的Ruby版本中如何申明. 在文档创建步骤中,1.9及之后版本支持以下语法: document={name:"Tom",age:20}. 但是如果你使用的是2.2或者更高的版本,你可以用双引号将你的key包起来.如: document={&q

MongoDB组件util

MongonDB组件开发,封装成一个util,便于统一调用.管理. 一.引入POM <projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/

MongDB集合文档操作符

一.MongoDB - 连接 1.启动 MongoDB 服务 只需要在 MongoDB 安装目录的 bin 目录下执行 mongod 即可 执行启动操作后,mongodb 在输出一些必要信息后不会输出任何信息,之后就等待连接的建立,当连接被建立后,就会开始打印日志信息. 可以使用 MongoDB shell 来连接 MongoDB 服务器,可以使用 PHP 来连接 MongoDB. 标准 URI 连接语法: mongodb://[username:[email protected]]host1[

mongodb的学习-6-命令简单使用

1.创建数据库 use DATABASE_NAME 举例说明: > use another //创建了数据库another switched to db another > db another > show dbs //查看所有数据库,刚创建的数据库 another 没显示,需要插入数据才显示 admin 0.000GB config 0.000GB local 0.000GB > db.another.insert({"name":"hello&q

Python爬取CSDN博客文章

之前解析出问题,刚刚看到,这次仔细审查了 0 url :http://blog.csdn.net/youyou1543724847/article/details/52818339Redis一点基础的东西目录 1.基础底层数据结构 2.windows下环境搭建 3.java里连接redis数据库 4.关于认证 5.redis高级功能总结1.基础底层数据结构1.1.简单动态字符串SDS定义: ...47分钟前1 url :http://blog.csdn.net/youyou1543724847/

菜鸟的mongoDB学习---(四)MongoDB条件操作符

条件操作符用于比较两个表达式并从mongoDB集合中获取数据. MongoDB中条件操作符有: (>) 大于 - $gt (<) 小于 - $lt (>=) 大于等于 - $gte (<= ) 小于等于 - $lte > db.new.find({"age":{$gt:22}})#查找age大于22的文档 > db.new.find({"age":{$lt:22}})#查找age小于22的文档 > db.new.find({

MongoDB数据库的数据类型和$type操作符

前面的话 本文将详细介绍MongoDB数据库的数据类型和$type操作符 数据类型 MongoDB支持以下数据类型 类型 数字 备注 Double 1 双精度浮点数 - 此类型用于存储浮点值 String 2 字符串 - 这是用于存储数据的最常用的数据类型.MongoDB中的字符串必须为UTF-8 Object 3 对象 - 此数据类型用于嵌入式文档 Array 4 数组 - 此类型用于将数组或列表或多个值存储到一个键中 Binary data 5 二进制数据 - 此数据类型用于存储二进制数据

【MongoDB初识】-条件操作符

1.条件>,<,>=,<=在MongoDB中的写法 >:$gt,<:$lt,>=:$gte,<=:$lte,<>:$ne 具体使用方法: db.class.find({"filed":{$gt:value}}) filed>value db.class.find({"filed":{$lt:value}})  filed<value db.class.find({"filed"