MongoDB查找条件
1. 关系运算符
$eq 等于
$lt 小于
$lte 小于等于
$gt 大于
$gte 大于等于
$in 在范围内
//查询名字为“小明”和“小刚”的
$condition = [
'name' => ['$in' => ['小明','小刚']]
];
$result = $collection -> find($condition,['_id'=>false]);
2. 逻辑运算符
$and 并且(默认的逻辑关系就是并且)
//查询名年龄大于10并小于30的
$condition = [
'$and' => [
['age' => ['$gt' => 10]],
['age' => ['$lt' => 30]]
]
];
$result = $collection -> find($condition,['_id'=>false]);
$and 简写方式:
//查询名年龄大于10并小于30的
$condition = [
'age' => ['$gt' => 10,'$lt' => 30]
];
$result = $collection -> find($condition,['_id'=>false]);
$or 或者
//查询名年龄等于10或等于30的
$condition = [
'$or' => [
['age' => ['$eq' => 10]],
['age' => ['$eq' => 30]]
]
];
$result = $collection -> find($condition,['_id'=>false]);
$not 非
//查询名年龄不等于10的
$condition = [
'age' => ['$not' => ['$eq' => 10]]
];
$result = $collection -> find($condition,['_id'=>false]);
3. 数组条件
- 当属性的值是数组时,查询需特殊处理
- 查询条件中,属性的值是字符串,表示查找的条件中包含该字符串
//查询hobby里包含swim的
$condition = [
'hobby' => 'swim'
];
$result = $collection -> find($condition,['_id'=>false]);
- 查询条件中,属性的值包含多个内容,使用$all连接
//查询hobby里包含swim和climb的
$condition = [
'hobby' => ['$all' => ['swim','climb']]
];
$result = $collection -> find($condition,['_id'=>false]);
- 查询条件中,属性的值是一个数组,表示严格等于数组的元素
//查询hobby里就是swim和climb的
$condition = [
'hobby' => ['swim','climb']
];
$result = $collection -> find($condition,['_id'=>false]);
4. 内嵌文档
内嵌文档的表现形式类似于属性的值又是一个文档
例如:{
"name":"小明",
"score":{
"Math":100,
"Chinese”:90
}
}
- 通过 . 点号 获得内嵌文档的属性值
//查询数学分数大于80的
$condition = [
'score.math' => ['$gt' => 80]
];
$result = $collection -> find($condition,['_id'=>false]);
5. 正则过滤
使用正则表达式进行过滤
//查询名字以“小”开头的
$condition = [
'name' => new MongoRegex('/^小/')
];
$result = $collection -> find($condition,['_id'=>false]);
6. 排序
注:需要先查询,再对查询的结果进行排序
通过查询结果(cursor游标)的sort方法进行排序,排序有2种方式:
- 1 正序
- -1 倒序
//查询结果
$cursor = $collection -> find([],['_id'=>false]);
//对查询结果倒序排序
$result = $cursor -> sort(['score.math'=>-1]);
foreach($result as $key => $value){
echo ($value['name'].':'.$value['score']['math']).'<br/>';
}
7. 限定数量
对查询的结果进行限定,该方法属于cursor游标的
- skip() 忽略多少
- limit() 保留多少
//查询结果
$cursor = $collection -> find([],['_id'=>false]);
//对查询结果倒序排序,忽略前三个,保留后两个
$result = $cursor
-> sort(['score.math'=>-1])
-> skip(3)
-> limit(2);
foreach($result as $key => $value){
echo ($value['name'].':'.$value['score']['math']).'<br/>';
}
MongoDB查找条件的更多相关文章
- [转]mongodb 查询条件:关系运算符"$lt", "$lte", "$gt", "$gte", "$ne" 逻辑运算符"$and“, "$or“, "$nor“
mongodb 查询条件 这节来说说mongodb条件操作符,"$lt", "$lte", "$gt", "$gte" ...
- MongoDB $type条件操作符
描述 在本章节中,我们将继续讨论MongoDB中条件操作符 $type. $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果. MongoDB 中可以使用的类型如下表所示: 类型 ...
- Informatica 常用组件Lookup之七 查找条件
PowerCenter 使用查找条件来测试收到的值.这与 SQL 查询中的 WHERE 子句相似.为转换配置查找条件时,将对转换输入值和查找源或高速缓存(用查找端口代表)中的值进行比较.当您运行工作流 ...
- mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于)、查找条件
查询表中学生年级大于20,如下: db.getCollection('student').find({'age':{'$gt':'20'}}) $lt < (less than ) ...
- 深入理解mongodb查询条件语句
阅读目录 1. 理解:"$lt"."$lte"."$gt" 和 "$gte" 2. 理解 '$ne' 3. 理解 &qu ...
- golang mongodb查找find demo
使用gopkg.in/mgo.v2库操作,插入操作主要使用mongodb中Collection对象的Find方法,函数原型: func (c *Collection) Find(query inter ...
- MongoDB 多条件组合查询
组合条件查询json格式语法 { "$and": [ { "Date": { $gt: ISODate("2015-06-05T00:45:00.00 ...
- mongodb 查询条件
这节来说说mongodb条件操作符,"$lt", "$lte", "$gt", "$gte", "$ne&qu ...
- MongoDB查询条件常用设置
原文地址:http://blog.csdn.net/mcpang/article/details/8731065 Java操作mongodb进行查询,常用筛选条件的设置如下: 条件列表: BasicD ...
随机推荐
- 【涨姿势】Prince2和PMP的区别,大多数人都没搞清楚!
项目管理领域有2个流行的知识体系: ☑ 一个是美国项目管理协会(PMI)开发的“项目管理知识体系(PMBOK,Project Management Body of Knowledge)”,目 ...
- ubuntu安装zeromq
官网地址:http://zeromq.org/ ubuntu下zmq安装 (1)下载:wget http://download.zeromq.org/zeromq-4.1.4.tar.gz (2)解压 ...
- I/O复用及epoll基础知识
IO multiplexing IO multiplexing这个词可能有点陌生,但是如果我说select,epoll,大概就都能明白了.有些地方也称这种IO方式为event driven IO.我们 ...
- NSCopying简析
NSCopying简析 用到NSCopying的时候并不多,但还是有必要知道最基本的用途,比方说数组的拷贝操作,需要注意的是,数组的拷贝操作并不是执行了 copy 方法,而是需要执行 initWith ...
- UNIX高级环境编程(8)进程环境(Process Environment)- 进程的启动和退出、内存布局、环境变量列表
在学习进程控制相关知识之前,我们需要了解一个单进程的运行环境. 本章我们将了解一下的内容: 程序运行时,main函数是如何被调用的: 命令行参数是如何被传入到程序中的: 一个典型的内存布局是怎样的: ...
- 一、CSS概述 二、CSS的选择器(认识) 三、CSS样式和属性(练习) 四、重构商城首页DIV+CSS(页面布局)(重点) 浮动/更改显示方式
一.CSS概述###<1>概念 DIV,就是一个HTML元素,块级元素,通常结合CSS进行页面的布局. CSS,层叠样式表,给HTML元素增强显示. ###<2>作用 样式定义 ...
- Spring Boot 以 war 方式部署
Spring Boot 默认自带了一个嵌入式的 Tomcat 服务器,可以以jar方式运行,更为常见的情况是需要将 Spring Boot 应用打包成一个 war 包,部署到 Tomcat.Jerry ...
- #001 CSS快速入门讲解
CSS入门讲解 HTML人+CSS衣服+JS动作=>DHTML CSS: 层叠样式表 CSS2.0 和 CSS3.0 版本,目前学习CSS2, CSS3只是多了一些样式出来而已 CSS 干啥用的 ...
- SQLServer------查询结果为空的列赋默认值
ISNULL(字段,默认值) 如:SELECT ISNULL(name,'无名') FROM [User]
- Ceph PG介绍及故障状态和修复
1 PG介绍pg的全称是placement group,中文译为放置组,是用于放置object的一个载体,pg的创建是在创建ceph存储池的时候指定的,同时跟指定的副本数也有关系,比如是3副本的则会有 ...