4.Mongodb数据查询2

1.limit &skip

(1)Limit

  • 方法limit():用于读取指定数量的文档
  • 语法:
db.集合名称.find().limit(NUMBER)

  

  • 参数NUMBER表示要获取文档的条数
  • 如果没有指定参数则显示集合中的所有文档
  • 例1:查询2条学生信息
db.stu.find().limit(2)

  

(2)skip

  • 方法skip():用于跳过指定数量的文档
  • 语法:
db.集合名称.find().skip(NUMBER)

  

  • 参数NUMBER表示跳过的记录条数,默认值为0
  • 例2:查询从第3条开始的学生信息
db.stu.find().skip(2)

  

 (3)一起使用

  • 方法limit()和skip()可以一起使用,不分先后顺序
  • 创建数据集
for(i=0;i<15;i++){db.t1.insert({_id:i})}

  

  • 查询第5至8条数据
db.stu.find().limit(4).skip(5)
或
db.stu.find().skip(5).limit(4)

  

2.投影

  • 在查询到的返回结果中,只选择必要的字段,而不是选择一个文档的整个字段
  • 如:一个文档有5个字段,需要显示只有3个,投影其中3个字段即可
  • 语法:
  • 参数为字段与值,值为1表示显示,值为0不显示
db.集合名称.find({},{字段名称:1,...})

  

  • 对于需要显示的字段,设置为1即可,不设置即为不显示
  • 特殊:对于_id列默认是显示的,如果不显示需要明确设置为0

  例1

db.stu.find({},{name:1,gender:1})

  

  例2

db.stu.find({},{_id:0,name:1,gender:1})

  

3.排序

  • 方法sort(),用于对结果集进行排序
  • 语法
db.集合名称.find().sort({字段:1,...})

  

  • 参数1为升序排列
  • 参数-1为降序排列
  • 例1:根据性别降序,再根据年龄升序
db.stu.find().sort({gender:-1,age:1})

  

4.统计个数

  • 方法count()用于统计结果集中文档条数
  • 语法
db.集合名称.find({条件}).count() 
  • 也可以与为
db.集合名称.count({条件})

  

  • 例1:统计男生人数
db.stu.find({gender:1}).count()

  

  • 例2:统计年龄大于20的男生人数
db.stu.count({age:{$gt:20},gender:1})

  

5.消除重复

  • 方法distinct()对数据进行去重
  • 语法
db.集合名称.distinct(‘去重字段‘,{条件})

  

  • 例1:查找年龄大于18的性别(去重)
db.stu.distinct(‘gender‘,{age:{$gt:18}})

  

  

原文地址:https://www.cnblogs.com/venicid/p/8432045.html

时间: 2024-10-08 19:15:14

4.Mongodb数据查询2的相关文章

MongoDB数据查询

启动MongoDB:sudo service mongodb start,mongo 经测试,键可加引号也可不加,但是值一般要加引号,数值类型除外 MongoDB区分大小写,命名通常采用驼峰式命名法 MongoDB在使用数据库,插入集合等情况下,若数据库/集合不存在将自动创建 数据查询find() db.<集合名>.find({<键名>:<值>,...}) 格式化结果集:后加.pretty()即db.<CollectionName>.find({key:'v

Mongodb数据查询 | Mongodb

1.基本查询 ①方法find():查询 db.集合名称.find({条件文档}) ②方法findOne():查询,只返回第一个 db.集合名称.findOne({条件文档}) ③方法pretty():将结果格式化 db.集合名称.find({条件文档}).pretty() 2.比较运算符 # 等于,默认是等于判断,没有运算符 # 小于,$lt less-than # 小于或等于,$lte less-than,equal # 大于,$gt greater-than # 小于或等于,$gte gre

从mongodb中查询数据

连接mongodb: public class GenericMga{ private DB db; public DB getDB(){ return this.db; } public void setDB(DB db){ this.db = db; } } DBCollection coll = null; coll=getDB().getCollection("collName");//保存时候的名字相当于MySQL的表名 创建查询条件: BasicDBObject query

MongoDB源码分析——mongod数据查询操作

源码版本为MongoDB 2.6分支 Edit mongod数据查询操作 在mongod的初始化过程中说过,服务端接收到客户端消息后调用MyMessageHandler::process函数处理消息. class MyMessageHandler : public MessageHandler { public: ... virtual void process( Message& m , AbstractMessagingPort* port , LastError * le) { while

MongoDB(课时5 数据查询)

3.4.2 数据查询 MongoDB数据库里面,对于数据库查询的支持非常到位,有关系运算,逻辑运算,数组运算,正则运算等. 对于数据的查询操作核心语法: db.集合名称.find({查询条件} {设置显示的字段}) 范例:没查询条件 db.info.find() 范例:有查询条件,查询出url为"www.mldn.cn"的数据 db.info.find({"url" : "www.mldn.cn"}) 进行数据查询的时候是按照JSON的形式设置的

C#多线程更新,查询MongoDB数据

对多线程一直在用,但是从来没去深入研究过注意的事项,包括和锁的配合也是一知半解没有真正理解锁(lock)的用法. 这次在做数据分析是需要将访问的url中host部分记录,如果已经存在就直接匹配id,没有就新增.为了提升效率马上想到的就是多线程,因为程序自身比较复杂,就大篇幅贴代码了. 主要思路:lock是对实例进行上锁的,如果线程中每个线程都创建了不同的实例那lock的意义也就随之不存在. 如果涉及到多层类的引用和传递,那就在进程入口处做一次实例化,需要类的初始化或者调用时,一层层去传递直到业务

mongodb 模糊查询以及$type使用

mongodb 模糊查询以及$type使用 2012-09-11 14:13:30|  分类: mongodb |  标签: |举报 |字号大中小 订阅 最近有一监控业务,由于数据采集到非数字内容,导致监控图表无法正常显示,所以要找出这部分数据,进行删除,然后开发员从源头更正插入数据库的数据,不再产生非数字内容. 下面举一个例子: 建立测试数据: for(i=1;i<=100;i++){db.test.insert({id:i,content:"test content",nam

MongoDB数据文件内部结构

有人在Quora上提问:MongoDB数据文件内部的组织结构是什么样的.随后10gen的工程师Jared Rosoff出来做了简短的回答. 每一个数据库都有自己独立的文件.如果你开启了directoryperdb选项,那你每个库的文件会单独放在一个文件夹里. 数据库文件在内部会被切分成单个的块,每个块只保存一个名字空间的数据.在MongoDB中,名字空间用于区分不同的存储类别.比如每个collection有一个独立的名字空间,每个索引也有自己的名字空间. 在一个块中,会保存多条记录,每条记录是B

MongoDB 数据迁移和同步

MongoDB 数据迁移和同步 MongoDB的数据同步 复制 mongodb的复制至少需要两个实例.其中一个是主节点master,负责处理客户端请求,其余的都是slave,负责从master上复制数据. master写处理:master负责接收写请求,具体的流程为: 如果开启journal功能,则先将写请求记录到journal中,然后批量执行,同时将操作记录到oplog中: 如果未开启journal功能,则对每个写请求进行单独操作,然后写入oplog. 注:oplog是幂等的,当有累加操作in