查询

简介: find简介MonngoDB中使用find来进行查询。查询就是返回集合文档中的子集,子集的范围从0个到文档到整个集合。find的第一个参数决定了要返回哪些文档,这个参数是一个文档,用于指定的查询条件。

find简介

MonngoDB中使用find来进行查询。查询就是返回集合文档中的子集,子集的范围从0个到文档到整个集合。find的第一个参数决定了要返回哪些文档,这个参数是一个文档,用于指定的查询条件。
空的查询文档(例如{})会匹配集合 的全部内容。要不是指定查询文档,默认就是{}。 db.c.find() 等价与 db.c.find({})
查询条件

"$lt" "$lte" "$gt" "$gte"这些比较操作符分别对应着< <= > >=,可以将其组合起来以便查找一个范围的值。如: 查询‘age’字段大于等于18,小于等于30的所有文档。

db.users.find({"age" : {"$gte" : 18, "$lte" : 30}})
还有一个不等于“$ne”。
“$in”可以用来查询一个键的多个值;“$or”更通用一些,可以在多个键中查询任意的给定值。
"$not"是元条件句,即可以用在任何其他条件之上。与正则表达式联合使用时极为有用,用来查询那些与特定模式不匹配的文档。 "$mod"会将查询的值除以第一个给定值,若余数等于第二个给定值则匹配成功。
特定类型的查询

null这个类型有点奇怪,它确实能匹配自身;但是null不仅会匹配到某个键的值为null的文档,而且还会匹配不包含这个键的文档。,所以这种匹配还会返回缺少这个键的所有文档。
如果想要匹配键值为null的文档,既要检查该键的值是否为null,还要通过“$exists”判定键值已存在。

db.c.find({"z" : {"$in" : [null], "$exists" : true}})
查询数组

查询数组元素与查询标量值是一样的。
$all:如果需要多个元素来匹配数组,就要用“$all”了,这样会匹配一组元素。
$size:它可以用于查询特定长度的数组。
$slice:这个操作符可以返回某个键匹配的数组元素的一个子集。
$:$操作符可以得到一个匹配的元素。
查询内嵌文档

查询内嵌文档与普通文档查询完全相同。
$where查询

键/值是一种表达能力非常好的查询方式,但是依然有些需求它无法表达。 不是非常必要时,一定要避免使用“$where”查询,因为他们在速度上要比常规查询慢的很多。每个文档都要从BSON转换成JS对象,然后通过“$where”表达式来运行。而且"$where"语句不能使用索引。
游标

客户端对游标的实现通常能够对最终的结果进行有效的控制。可以限制结果的数量,略过部分结果,根据任意键按任意顺序的组合对结果进行排序,或者是执行其他一些强大的操作。
limit skip和sort分别对查询结果限制,忽略和排序。
比较顺序:
最小值;
null ;
数字(整型、长整型、双精度);
字符串;
对象 / 文档;
数组;
二进制数据;
对象 ID ;
布尔型;
日期型;
时间戳;
正则表达式;
最大值 。

相关文章
|
8天前
|
NoSQL MongoDB 数据库
查询数据
查询数据
11 4
|
2月前
|
SQL 存储
6. 复杂查询
6. 复杂查询
|
2月前
|
算法 Oracle 关系型数据库
数据库等值查询与统计信息
简介: 统计信息是为优化器的 cost 估算提供数据支撑,其中很重要的一点需求便是等值查询(EQUALS, IN 等) 场景下的基数估算。
数据库等值查询与统计信息
|
缓存 自然语言处理 网络架构
Elasticearch 查询详解 (二)
elk官网: [https://www.elastic.co/guide/en/enterprise-search-clients/index.html](https://www.elastic.co/guide/en/enterprise-search-clients/index.html) 作者主页:https://www.couragesteak.com/
Elasticearch 查询详解 (二)
|
C++
202009-1称检测点查询
202009-1称检测点查询
66 0
202009-1称检测点查询
小技巧 - 如何查询医保卡号?
小技巧 - 如何查询医保卡号?
1345 0
小技巧 - 如何查询医保卡号?
|
SQL 关系型数据库 MySQL
五、简单查询
五、简单查询
128 0
|
关系型数据库 MySQL 数据库
Mysql查询-表数据的查询
创建一个数据库 create database python_test charset=utf8; 使用一个数据库 use python_test; 显示使用的当前数据是那个? select database(); 创建一个数据表 create table students( id int unsigned not null auto_increment primary key, name varchar(30), age tinyint unsigned default 0, high decimal(5
172 0
|
SQL
【查询】查询好像也可以很简单!
     还是要先说一下范围:以数据库为主的程序,b/s结构。        查询嘛,对于我来说就是SQL语句 where 后面(group、order by 前面的)的内容,把这搞定了,查询也就搞定了。
812 0

热门文章

最新文章