这几天看了mongdb权威指南这本书,但是我下载的最新的版本(mongodb-src-r2.4.5)。 有些例子执行不成功。
如下面:
1、一条都没有返回 初始化time为0,
> db.runCommand({"group":{"ns":"stocks", "key":"day","initial":{"time":0},"$reduce":function(doc, prev){if(doc.time>prev.time){prev.time=doc.time; prev.price=doc.price; prev.day=doc.day}},"condition":{"day":{"$gt":"2010/09/30"}}}})
{
"retval" : [
{
"time" : 0
}
],
"count" : 5,
"keys" : 1,
"ok" : 1
}
2、只返回了一条初始化time为“0”
> db.runCommand({"group":{"ns":"stocks", "key":"day","initial":{"time":"0"},"$reduce":function(doc, prev){if(doc.time>prev.time){prev.time=doc.time; prev.price=doc.price; prev.day=doc.day}},"condition":{"day":{"$gt":"2010/09/30"}}}})
{
"retval" : [
{
"time" : "10/6/2010 05:27:01 GMT-400",
"price" : 4.3,
"day" : "2010/10/06"
}
],
"count" : 5,
"keys" : 1,
"ok" : 1
}
3、查了一下手册把“key”:"day" 改成了"key":{"day":1} ,这下数据OK了,数据升序排序,关于结实没有看到更多,我尝试改为“-1”和“0”想实现倒序排序,没有实现
db.runCommand({"group":{"ns":"stocks", "key":{"day":1},"initial":{"time":"0"},"$reduce":function(doc, prev){if(doc.time>prev.time){prev.time=doc.time; prev.price=doc.price; prev.day=doc.day}},"condition":{"day":{"$gt":"2010/09/30"}}}})
{
"retval" : [
{
"day" : "2010/10/03",
"time" : "10/3/2010 05:57:01 GMT-400",
"price" : 4.17
},
{
"day" : "2010/10/04",
"time" : "10/4/2010 08:27:01 GMT-400",
"price" : 4.01
},
{
"day" : "2010/10/06",
"time" : "10/6/2010 05:27:01 GMT-400",
"price" : 4.3
}
],
"count" : 5,
"keys" : 3,
"ok" : 1
}
相关推荐
MongoDB 中的 `aggregate` 方法是一种用于处理数据(聚合数据)的方法,它可以进行复杂的汇总操作。`group` 是 `aggregate` 方法中的一个阶段,它可以根据指定的字段对文档进行分组,并且可以计算每个分组的统计信息...
### MongoDB数据库基本操作详解 #### 一、连接MongoDB数据库 MongoDB是一个广泛使用的开源文档数据库,支持多种编程语言。为了能够与MongoDB交互并执行各种数据库操作,首先需要通过官方提供的驱动程序或其他第三...
- 聚合操作通常由一系列管道阶段组成,如`$match`、`$group`、`$sort`和`$project`。 - 可以进行复杂的数据分析,如统计、分组、计算平均值等。 8. **副本集与分片** - 副本集提供冗余和高可用性,通过复制数据...
在本教程中,我们将深入探讨MongoDB中的三个关键聚合操作:`count`、`distinct`和`group`。 1. `count` 函数: `count` 方法用于计算集合中符合特定条件的文档数量。在MongoDB中,你可以直接调用`db.collection....
本资料包“MongoDB Java操作大全 源代码 实例”将深入探讨如何使用Java API进行MongoDB的操作。 1. **连接MongoDB** 在Java中,首先需要通过`MongoClient`类建立到MongoDB服务器的连接。例如: ```java ...
在 Java 驱动中,可以通过 `MongoCollection.aggregate(List)` 方法执行聚合操作,如 `$match`, `$group`, `$sort`, `$project`, `$unwind` 等。 6. **交易支持**:从 MongoDB 4.0 开始,引入了事务支持。在 Java ...
在C#中操作MongoDB,通常需要使用MongoDB官方提供的.NET驱动程序,该驱动程序允许开发者通过C#代码与MongoDB服务器进行交互。本资料包包含了C#操作MongoDB的源代码示例,涵盖了连接MongoDB数据库、执行各种操作的...
MongoDB的聚合框架允许对数据进行处理,包括数据转换、分组、计算等操作,类似于SQL的GROUP BY。聚合操作由一系列阶段组成,如`$match`(筛选)、`$group`(分组)、`$sort`(排序)和`$project`(投影)。 八、...
MongoDB 的常用操作包括增删改查,以及更复杂的查询功能。例如: 1. **增加数据**: - 单个文档插入:`db.collectionName.insert({key1: value1, key2: value2})` - 多个文档批量插入:`db.collectionName.insert...
在Java开发中,与MongoDB的交互通常通过Java驱动程序实现,它提供了对数据库的基本CURD(创建、读取、更新、删除)操作的支持。本篇文章将深入探讨MongoDB在Java环境下的CURD操作,帮助初学者更好地理解和应用。 ...
本篇将详细介绍如何利用Java实现MongoDB数据库的增、删、改、查(CRUD)操作。 1. **连接MongoDB** 要使用Java连接MongoDB,首先需要引入MongoDB Java驱动程序的依赖。在Maven项目中,可以在pom.xml文件中添加以下...
MongoDB中的聚合框架是一个强大且灵活的数据处理工具,它允许用户对存储在数据库中的数据执行各种操作,从简单的数据聚合到复杂的文本处理和数组操作等。 聚合框架的主要组成部分是管道(pipeline),它由多个处理...
以下是一些关于MongoDB常用SQL操作的关键知识点: 1. **数据模型**:MongoDB基于JSON(JavaScript Object Notation)格式的文档存储数据,这使得它能够存储复杂的数据结构,如嵌套对象和数组。 2. **连接MongoDB**...
- MongoDB的`group`操作受限于内存限制,返回的结果集不能超过16MB。 - `group`操作处理的唯一键不能超过10000个。 - `group`可能无法利用索引,这会导致性能下降。 **与MapReduce的比较**: - MapReduce是另一种...
除此之外,还有`update()`方法用于更新数据,`remove()`方法用于删除数据,`group()`方法用于分组统计,`aggregate()`方法用于聚合操作等。在实际开发中,还需要熟悉这些高级功能,以便更好地利用MongoDB的特性。 ...
C#作为.NET框架下的主要编程语言,拥有强大的库来支持与MongoDB的交互,这就是我们今天要讨论的"C#操作MongoDB"。在这个Demo中,我们将基于C# Driver 2.2.4版本来操作MongoDB 3.2.8,通过源码实例深入理解其工作原理...
聚合框架允许你进行更复杂的分析,包括管道操作,如`$match`,`$group`,`$sort`和`$project`等。 在实际应用中,你可能还需要了解如何创建和管理数据库(`use`,`db.createCollection`),索引(`createIndex`),...