- 浏览: 520234 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (422)
- 重要 (12)
- BUG解决备忘录 (32)
- 环境搭建 (17)
- 开源组件 (4)
- 数据库 (16)
- 设计模式 (4)
- 测试 (3)
- javascript (5)
- Android (14)
- jdk相关 (9)
- struts2 (10)
- freemark (3)
- 自定义扩展及工具类 (5)
- jdk5新特性及java基础 (13)
- ssh及其他框架 (15)
- linux (32)
- tcp-ip http协议 (8)
- 服务器集群与负载均衡 (34)
- 项目管理相关 (11)
- 实用小技术 (10)
- 架构相关 (14)
- firefox组件 (11)
- spider (6)
- 产品设计 (11)
- PHP (1)
- ws (4)
- lucene (10)
- 其他 (2)
- BI (1)
- NoSQL (3)
- gzip (1)
- ext (4)
- db (6)
- socket (1)
- 源码阅读 (2)
- NIO (2)
- 图片处理 (1)
- java 环境 (2)
- 项目管理 (4)
- 从程序员到项目经理(一):没有捷径 (1)
- bug (1)
- JAVA BASE (8)
- 技术原理 (0)
- 新框架新技术 (1)
- 量化与python (1)
- 系统编程 (0)
- C语言 (0)
- 汇编 (0)
- 算法 (0)
最新评论
-
hyspace:
别逗了,最后一个算法根本不是最优的,sort(function ...
数组去重——一道前端校招试题 -
washingtin:
楼主能把策略和路由的类代码贴出来吗
Spring + iBatis 的多库横向切分简易解决思路 -
sdyjmc:
初略看了一下,没有闹明白啊,均衡负载使用Nginx,sessi ...
J2EE集群原理 I -
shandeai520:
谢谢大神!请教大神一个问题:假如我有三台服务器,连接池的上限是 ...
集群和数据库负载均衡的研究 -
hekuilove:
给lz推荐一下apache commonsStringUtil ...
request 获取 ip
#查询
查询 name = "bruce" 的数据
db.users.find({ name : "bruce" });
条件操作符
$gt : >
$lt : <
$gte: >=
$lte: <=
$ne : !=、<>
$in : in
$nin: not in
$all: all
$not: 反匹配(1.3.3及以上版本)
查询 name <> "bruce" and age >= 18 的数据
db.users.find({name: {$ne: "bruce"}, age: {$gte: 18}});
查询 creation_date > '2010-01-01' and creation_date <= '2010-12-31' 的数据
db.users.find({creation_date:{$gt:new Date(2010,0,1), $lte:new Date(2010,11,31)});
查询 age in (20,22,24,26) 的数据
db.users.find({age: {$in: [20,22,24,26]}});
查询 age取模10等于0 的数据
db.users.find('this.age % 10 == 0');
或者
db.users.find({age : {$mod : [10, 0]}});
匹配所有
db.users.find({favorite_number : {$all : [6, 8]}});
可以查询出{name: 'David', age: 26, favorite_number: [ 6, 8, 9 ] }
可以不查询出{name: 'David', age: 26, favorite_number: [ 6, 7, 9 ] }
查询不匹配name=B*带头的记录
db.users.find({name: {$not: /^B.*/}});
查询 age取模10不等于0 的数据
db.users.find({age : {$not: {$mod : [10, 0]}}});
#返回部分字段
选择返回age和_id字段(_id字段总是会被返回)
db.users.find({}, {age:1});
db.users.find({}, {age:3});
db.users.find({}, {age:true});
db.users.find({ name : "bruce" }, {age:1});
0为false, 非0为true
选择返回age、address和_id字段
db.users.find({ name : "bruce" }, {age:1, address:1});
排除返回age、address和_id字段
db.users.find({}, {age:0, address:false});
db.users.find({ name : "bruce" }, {age:0, address:false});
数组元素个数判断
对于{name: 'David', age: 26, favorite_number: [ 6, 7, 9 ] }记录
匹配db.users.find({favorite_number: {$size: 3}});
不匹配db.users.find({favorite_number: {$size: 2}});
$exists判断字段是否存在
查询所有存在name字段的记录
db.users.find({name: {$exists: true}});
查询所有不存在phone字段的记录
db.users.find({phone: {$exists: false}});
$type判断字段类型
查询所有name字段是字符类型的
db.users.find({name: {$type: 2}});
查询所有age字段是整型的
db.users.find({age: {$type: 16}});
对于字符字段,可以使用正则表达式
查询以字母b或者B带头的所有记录
db.users.find({name: /^b.*/i});
$elemMatch(1.3.1及以上版本)
为数组的字段中匹配其中某个元素
Javascript查询和$where查询
查询 age > 18 的记录,以下查询都一样
db.users.find({age: {$gt: 18}});
db.users.find({$where: "this.age > 18"});
db.users.find("this.age > 18");
f = function() {return this.age > 18} db.users.find(f);
排序sort()
以年龄升序asc
db.users.find().sort({age: 1});
以年龄降序desc
db.users.find().sort({age: -1});
限制返回记录数量limit()
返回5条记录
db.users.find().limit(5);
返回3条记录并打印信息
db.users.find().limit(3).forEach(function(user) {print('my age is ' + user.age)});
结果
my age is 18
my age is 19
my age is 20
限制返回记录的开始点skip()
从第3条记录开始,返回5条记录(limit 3, 5)
db.users.find().skip(3).limit(5);
查询记录条数count()
db.users.find().count();
db.users.find({age:18}).count();
以下返回的不是5,而是user表中所有的记录数量
db.users.find().skip(10).limit(5).count();
如果要返回限制之后的记录数量,要使用count(true)或者count(非0)
db.users.find().skip(10).limit(5).count(true);
分组group()
假设test表只有以下一条数据
{ domain: "www.mongodb.org"
, invoked_at: {d:"2009-11-03", t:"17:14:05"}
, response_time: 0.05
, http_action: "GET /display/DOCS/Aggregation"
}
使用group统计test表11月份的数据count:count(*)、total_time:sum(response_time)、avg_time:total_time/count;
db.test.group(
{ cond: {"invoked_at.d": {$gt: "2009-11", $lt: "2009-12"}}
, key: {http_action: true}
, initial: {count: 0, total_time:0}
, reduce: function(doc, out){ out.count++; out.total_time+=doc.response_time }
, finalize: function(out){ out.avg_time = out.total_time / out.count }
} );
[
{
"http_action" : "GET /display/DOCS/Aggregation",
"count" : 1,
"total_time" : 0.05,
"avg_time" : 0.05
}
]
发表评论
-
记一次MongoDB性能问题,附原理解析
2011-12-30 17:25 874下面文章转载自火丁笔记 ,原作者描述了一次MongoDB ... -
mongodb笔记
2011-12-30 16:51 14181. 32位的MongoDB数据量受限于2.5GB,The r ... -
JVM Java HeapSpace到达临界值的高CPU问题
2011-11-10 19:27 1106本周有同事反馈,IDC环 ... -
java profile【cpu负载过高】
2011-11-10 17:58 1132问题描述: cpu负载陡增,内存占用情况稳定。(在多cpu ... -
Nginx+keepalived做双机热备加tomcat负载均衡
2011-10-25 16:55 1670环境说明: nginx1: 192.168.2.4 ... -
Linux网管日记(9):Linux的前世今生
2011-03-13 16:00 8701.Linux的前世 地球人 ... -
网络管理员日记(8)里应外合:Linux下的后门和日志工具
2011-03-13 15:59 1088攻入Linux系统后,很多入侵者往往就开始得意忘形了。这其中还 ... -
Linux网络管理员日记(7)更上一层楼:Linux服务器的安全实践
2011-03-13 15:58 996网络安全实践中,防火 ... -
Linux网络管理员日记(6)Linux邮件服务器的安装和安全
2011-03-13 15:57 1500四、更简单高效:Linux 邮件服务器的安装和安全 在 ... -
Linux管理员日记(5) 更简单高效:Linux邮件服务器的安装和安全
2011-03-13 15:54 1159在网络管理员的日常工作中,邮件服务器扮演着一个非常重要的角色, ... -
Linux管理日记(4)——免费而稳定:Web服务器和FTP服务器的安装
2011-03-13 15:53 1259为什么要采用Linux操作系统作为网络服务器?答案是:稳定性高 ... -
Linux管理员日记连载(3)简单易操作:类似Windows控制面板的Webmin
2011-03-13 15:52 1223安装完Linux操作系统后 ... -
Linux管理员日记连载(2)——Linux系统下的设备和文件配置
2011-03-13 15:51 998新建一个虚拟机后,除 ... -
Linux管理员日记(1)——Linux服务器傻瓜式安装完全手册
2011-03-13 15:50 1995内容简介 从桌面到服务器,从 ... -
Samba服务器的安装配置和应用
2011-03-12 14:34 1140随着计算机网络的发展 ... -
Linux 中 crontab 详解及示例(收藏)
2011-03-10 10:24 792cron是一个linux下的定时执行工具,可以在无需人工干预的 ... -
CentOS下MySql 5.0.x的安装、优化及安全设置
2011-03-07 20:24 771下载页面:http://dev.mysql.com/downl ... -
RPM强制卸载
2011-03-07 12:59 2502强制卸载jdk rpm -e j2sdk1.4.2_04 ... -
CENTOS5.2 下安装MYSQL+TOMCAT6 相关设置,设置自启动
2011-03-07 06:41 1092在SUSE SLES11 下安 ... -
用Linux下的rsync命令实现多服务器镜像同步
2011-03-06 04:08 1075用linux系统中的rsync命令 ...
相关推荐
MongoDB 是一种流行的 NoSQL 数据库,以文档型数据存储为主,支持丰富的查询表达能力。在本题中,我们将探讨 MongoDB 的查询操作,基于提供的 `user1` 和 `user2` 文档进行练习。 首先,让我们熟悉一下 `db.users....
如果您不习惯MongoDB查询语言,那么Studio3T的SQL查询可能会派上用场。编写SQL选择表达式和SQL联接来查询mongodb,并查看SQL查询如何转换为MQL——这是一个很好的工具。SQL查询语言
MongoDB 查询语法详解 MongoDB 是一个基于NoSQL的数据库,具有高效、灵活、易扩展等特点。在 MongoDB 中,查询语法是非常重要的一部分,本文将对 MongoDB 的查询语法进行详细的介绍。 基本查询语法 在 MongoDB 中...
本文将深入探讨如何验证MongoDB查询性能并进行优化。 首先,我们需要理解MongoDB的查询机制。MongoDB使用查询解释器来解析和执行查询操作。通过`explain()`方法,我们可以获取查询的执行计划,包括扫描的文档数量、...
首先,我们要了解MongoDB查询的基本原理。MongoDB使用查询解释器来解析查询语句,并生成执行计划。执行计划决定了数据如何被检索,包括使用的索引、数据读取顺序等。你可以通过`db.collection.explain()`方法来查看...
一个是用Scala编写的MongoDB查询指定域语言 示例代码: val query = Venue where (_.venuename eqs "Starbucks")query.count()query.countDistinct(_.mayor)query.fetch()query.fetch(n)query.get() // equivalent...
本章主要内容包括理解查询一个电子商务数据模型、MongoDB查询语言的细节、查询选择器及其选项。 MongoDB查询语言不同于传统的SQL,而是采用类JSON的查询语法。书中通过实际的电子商务场景来解释查询操作,如商品、...
本压缩包"一个简单的沙箱来测试和共享MongoDB查询.zip"显然是为了提供一个环境,让用户能够安全地尝试和分享MongoDB查询,而不会影响到生产环境。 在“mongoplayground_dev.zip”中,很可能是包含了一个在线MongoDB...
mongodb查询数据,显示DBCursor.next这种形式,那如何把值带到JSP显示呢? 上传的是一个项目Demo,导入可以直接运行,当然也可以直接查看其中的代码。 项目是使用jquery.ajax显示后台返回的Json串。 若再详细了解...
4. 查询执行:在IDEA内直接编写和执行MongoDB查询语句,实时查看结果,支持复杂的聚合框架操作。 5. 脚本执行:支持运行JavaScript脚本,对数据库进行更复杂的操作。 6. 导入导出:可以将数据导入或导出为JSON、CSV...
- 查询构建器:帮助用户构建和执行MongoDB查询语句。 - 监控工具:显示服务器状态,如内存使用、磁盘空间和操作统计等。 在实际工作中,根据需求和环境,开发者和DBA可能会选择其中一个或两者结合来管理MongoDB...
MongoDB查询语言:分片处理
MongoDB查询语言:备份与恢复
在Thinkphp中使用MongoDB进行多条件查询时,需要对框架提供的驱动进行一定的修改以适应MongoDB的查询方式。 在Thinkphp中实现多条件查询时,可以使用框架提供的查询构建器(Query Builder),但是当涉及到MongoDB的...
本篇资料主要涵盖了MongoDB的基本查询操作,包括查询数据、格式化输出、筛选特定文档以及使用比较运算符进行查询。 首先,MongoDB 中用于查询数据的核心命令是 `find`,正如题目中所提及的,其基本语法格式为 `db....
一、MongoDB查询基础 1. 查询文档:在MongoDB中,查询数据是通过`find()`方法实现的。例如,如果你想从"movies"集合中找到所有的文档,你可以使用以下命令: ```javascript db.movies.find(); ``` 2. 条件查询...
MongoDB查询优化技术研究_葛宇锋.caj
sift.js, 使用mongodb查询筛选数组 使用mongodb查询验证对象的&筛选器数组 扩展文档 checkout http://docs.mongodb.org/manual/reference/operator/query/插件功能:Support
node-monquery, 面向人类的mongodb查询语言 monquerylucene为人类( 还有 ferrets ) 提供了基于字符串的mongodb查询语言。安装$ npm install monquery为什么?更好的搜索/日志过滤的用户体验编写JSON查
在脚本中编译的一些 MongoDB 查询..如何运行脚本/秒: 运行 mongoDB 服务器: mongod --port 27017 导入json文档: mongoimport -db testing --collection people res/people.json --jsonArray 在本地运行脚本: ...