MongoDB数据查询

1、find函数的介绍和使用
MongoDB数据查询使用find函数,其功能与SQL中的select函数相同,可提供与关系型数据库类似的许多功能,包括映射、排序等。

db.集合名.find(query,fields,limit,skip)
query指查询条件,相当于SQL中的where语句。
例如: db.student.find({name:"joe","age":{$lt:22}})
fields用于字段映射(projection)语法格式:{field:0}
例如:db.student.find({"age":{$lt:22}},{"_id":0,"name":1})

limit用于限制查询结果集的文档数量。
skip用于跳过一定数据量的结果,设置第一条返回文档的偏移量。
需要注意:
不支持多集合间的连接查询,find函数一次查询只能针对一个集合。
find函数参数为空或者查询条件为空文档时,会返回集合中的所有文档,例如:db.student.find() 或 db.student.find({})
除了将limit和skip作为find函数的参数外,还可以单独使用limit和skip函数来修饰查询结果。
查询结果默认是无序的,如果需要对结果进行排序,可以使用sort函数。
findOne()只会返回第一条数据。
当查询的结果文档数量很大时,为了加快数据查询的速度可以创建索引。
除了使用find函数实现基本查询外,MongoDB还提供了聚合框架,用于复杂查询。
2、比较查询符

$eq/$ne   等于/不等于
$gt/$gte 大于/大于等于
$lt/$lte 小于/小于等于
$in/$nin  包含/不包含

3、逻辑查询操作符
可连接多个查询条件,用于逻辑与、或、非以及取反操作。

$and  与
$or    或
$nor   非
$not   取反

4、元素查询操作符

$exits   按照字段是否存在来查询文档
$type   选择字段值为指定的BSON数据类型编号的文档
$where操作符功能强大且灵活,它可以将JavaScript表达式的字符串或JavaScript函数作为查询语句的一部分。在JavaScript表达式和函数中,可以使用this或obj来引用当前操作的文档。
例如: db.collection.find({ $where:"this.credits==this.debits"})
JavaScript表达式或函数返回true时,才会返回当前文档。
查询时,$where 操作符不能使用索引,每个文档需要从BSON对象转换成JavaScript对象后,才能通过$where表达式来运行。因此,它比常规查询要慢很多,一般情况下要避免使用$where查询。
时间: 2024-08-02 13:14:09

MongoDB数据查询的相关文章

mongodb数据常用查询语句笔记

这节来说说如何检索mongodb数据.首先向文档中插入一些数据. 1. 插入数据  代码如下 复制代码 > use ttlsa_com switched to db ttlsa_com > db.mediaCollection.insert({ "Type" : "Book", "Title" : "Definitive Guide to MongoDB, the", "ISBN" : &quo

数据读取-spring读取 mongoDB数据

问题描述 spring读取 mongoDB数据 控制台显示:find using query: { "userid" : "18"} fields: null for class 可是 我在数据库用这个条件是可以查询出来数据的 解决方案 这个错误给的信息太少了

mongodb spring-Spring集成mongodb MongoTemplate 查询

问题描述 Spring集成mongodb MongoTemplate 查询 第一次用Spring集成mongodb,这个数据属性太多了,我想查到该条数据之后,我只想要它返回""general""这个属性和他的子属性映射到一个实体类如下图,那个类业之后general子属性中那些属性.怎么做?

MongoDB数据建模小案例:朋友圈评论内容管理

需求 社交类的APP需求,一般都会引入"朋友圈"功能,这个产品特性有一个非常重要的功能就是评论体系. 先整理下需求: 这个APP希望点赞和评论信息都要包含头像信息: 点赞列表,点赞用户的昵称,头像: 评论列表,评论用户的昵称,头像: 数据查询则相对简单: 根据分享ID,批量的查询出10条分享里的所有评论内容: 建模 不好的 跟据上面的内容,先来一个非常非常"朴素"的设计: { "_id": 41, "username": &q

dbcursor-请教一下mongo数据查询问题

问题描述 请教一下mongo数据查询问题 mongo刚入门,想请教一下查询mongo数据后得到的结集有没有方法将两个DBcursor组合到一起进行分页操作,或者说我要查多个mongo集合,需要将这数据放在一起进行分页 解决方案 去mongoDB的官网上面查找帮助文档,上面有Demo

Presto 0.175 发布,Facebook 大数据查询引擎

Presto 0.175 发布了,Presto 是 Facebook 开源的数据查询引擎,可对250PB以上的数据进行快速地交互式分析,查询的速度达到商业数据仓库的级别.据称该引擎的性能是 Hive 的 10 倍以上. Presto 可以查询包括 Hive.Cassandra 甚至是一些商业的数据存储产品.单个 Presto 查询可合并来自多个数据源的数据进行统一分析. 部分更新如下: 将 mongodb.connection-per-host 配置选项重命名为 mongodb.connecti

Teradata提升JSON数据查询性能

文章讲的是Teradata提升JSON数据查询性能,为帮助业务用户从JavaScript Object Notion(JSON)数据中更快地获得洞察力,Teradata天睿公司宣布,首次在同一数据库实现三大JSON数据格式的原生存储,这将为客户提供更强的查询性能.本次Teradata数据库升级将帮助业务用户充分利用网页应用.传感器和物联网(IoT)机器生成JSON数据的商业价值. 目前,Teradata天睿公司为客户提供以下三种格式选择:最适于多种形式数据以BSON格式存储的JSON数据.专为数

MongoDB范围查询的索引优化

我们知道,http://www.aliyun.com/zixun/aggregation/13461.html">MongoDB的索引是B-Tree结构的,和MySQL的索引非常类似.所以你应该听过这样的建议:创建索引的时候要考虑到sort操作,尽量把sort操作要用到的字段放到你的索引后面.但是有的情况下,这样做反而会使你的查询性能更低. 问题 比如我们进行下面这样的查询: db.collection.find({"country": "A"}).

Elasticsearch与MongoDB 数据同步及分布式集群搭建

过River可以与多种数据源Wikipedia, MongoDB, CouchDB, RabbitMQ, RSS, Sofa, JDBC, FileSystem,Dropbox等同步,公司的业务是用 MongoDB,今天测试环境虚拟机上配置了一下Elasticsearch 与 MongoDB的同步,作个大概的过程记录,主要利用richardwilly98 / elasticsearch-river-mongodb.River通过读取mongodb的oplog来同步数据,oplog这个表来使集群中