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 一致快照
mongdb查询操作的更多相关文章
- [C#] 进阶 - LINQ 标准查询操作概述
LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...
- MongoDB的查询操作
1. 前言 在这篇博文中,我们将学习如何查询mongoDB中的数据.当我们把数据存储在mongoDB以后,我们需要把数据查询出来.毕竟CRUD操作中,查询操作在我们系统中是我们应用比较频繁的操作.我们 ...
- Django 1.10 中文文档------3.2.2 查询操作making queries
3.2.2 查询操作 6.15章节包含所有模型相关的API解释. 后面的内容基于如下的一个博客应用模型: from django.db import models class Blog(models. ...
- InfluxDB学习之InfluxDB的HTTP API查询操作
在 InfluxDB学习 的上一篇文章:InfluxDB学习之InfluxDB的HTTP API写入操作 中,我们介绍了使用InfluxDB的HTTP API进行数据写入操作的过程,本文我们再来介绍下 ...
- mongDB-- 3. 查询操作
1. 准备工作 (1)启动mongo 进入mongo安装目录的bin/ 目录 , ./mongod (2)启动mongo客户端 ./mongo (3) 查看所有库 show dbs; (4) 切换到l ...
- .NET LINQ基本查询操作
获取数据源 在 LINQ 查询中,第一步是指定数据源.像在大多数编程语言中一样,在 C# 中,必须先声明变量,才能使用它.在 LINQ 查询中,最先使用 from 子句的目的是引入数据源 ( ...
- MongoDB各种查询操作详解
这篇文章主要介绍了MongoDB各种查询操作详解,包括比较查询.关联查询.数组查询等,需要的朋友可以参考下 一.find操作 MongoDB中使用find来进行查询,通过指定find的第一个参数可 ...
- MongoDB查询操作限制返回字段的方法
这篇文章主要介绍了MongoDB查询操作限制返回字段的方法,需要的朋友可以参考下 映射(projection )声明用来限制所有查询匹配文档的返回字段.projection以文档的形式列举结果集中 ...
- C#参数化执行SQL语句,防止漏洞攻击本文以MySql为例【20151108非查询操作】
为什么要参数化执行SQL语句呢? 一个作用就是可以防止用户注入漏洞. 简单举个列子吧. 比如账号密码登入,如果不用参数, 写的简单点吧,就写从数据库查找到id和pw与用户输入一样的数据吧 sql:se ...
随机推荐
- MVC5控制器传值的三种方式(ViewData,ViewBag,TempData),刚刚学习MVC5的新手,希望各位大神多多指教
mvc传值的三种方式:1.ViewData 在使用过程中需要类型转换 例子: ViewData["MyTitle"]="ViewData传值"; 引用: @Vi ...
- linux02
Linux Day 21.命令命令格式: chagrp chgrp命令用于变更文件或目录的所属群组. cd change directory 切换目录 格式:cd 路径 ls list 显示当前目录信 ...
- Linux防火墙配置与管理(16)
防火墙指的是一个由软件和硬件设备组合而成.在内部网和外部网之间.专用网与公共网之间的边界上构造的保护屏障.是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使Internet与Intra ...
- 小猴打架(luogu4430)(数论+生成树计数)
一开始森林里面有\(N\)只互不相识的小猴子,它们经常打架,但打架的双方都必须不是好朋友.每次打完架后,打架的双方以及它们的好朋友就会互相认识,成为好朋友.经过\(N-1\)次打架之后,整个森林的小猴 ...
- 学习使用Apollo配置中心
Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端. Apollo官网地址 如何安装服务端可以按照上面官网的步骤. 这里 ...
- <compilation debug="true" targetFramework="4.5"> 报错解决方案
在 VS2013 下开发的 MVC4 网站,基于 .net 4.5,服务器是一台 Windows 2008 R2,运行的时候就报错了 The 'targetFramework' attribute i ...
- mysql创建账号及管理权限
mysql创建账号及管理权限 0.mysql版本8.0.15,服务器版本:RHEL 6.5 1.创建用户名密码 mysql> use mysql; mysql> create user ' ...
- cFSMN和FSMN参数规模对比分析
1. FSMN参数规模分析 (1)分析前提: 假设隐藏层单元规模都为n 只分析前向t个时刻的结构,即暂时不考虑双向的结构 只分析向量系数编码,即vFSMN,暂时不考虑sFSMN ...
- 关于oracle RAC心跳线采用直连 还是交换机连接的建议
关于oracle RAC心跳线的连接方式,各个论坛,包括网上文章的说法是:官方说是不建议直连,建议采用交换机连接的方式!PS:但是,一直没有找到官方文档的出处,有知道的兄弟,烦请评论区提供下地址!!! ...
- 剑指offer七之斐波那契数列
一.题目 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项.n<=39. 二.思路 序号: 0 1 2 3 4 5 ...