MongoDB Querying: Order & Export Results
MongoDB Querying: Order & Export Results
我有这个MongoDB分组查询,它在Mongo控制台上效果很好:
db.accounts.group(
{ cond: { "created_at" : { $gte: ISODate("2012-08-12T00:00:00Z") }}
, key: {member_id: true}
, initial: {count: 0, failed: 0, succeeded: 0}
, reduce: function(doc, out) {
out.count++;
if (!doc.success)
out.failed++
else
out.succeeded++
}
});
我的三个问题:
- 有没有更简单的方法来生成此时间戳:ISODate("2012-08-12T00:00:00Z")?我可以使用日期函数生成此时间戳吗?如果是这样,如何?
- 如何按分组字段对返回的结果进行排序(asc/desc):"失败"或"成功"?
- 最后,如何将输出导出到平面文件?
更新
对于#3,我基本上在寻找这个:
mongo my_db --eval 'some_var=X;' --quiet my_script.js >> output.txt
其中my_db是我正在使用的数据库,some_var是我传递给my_script.js的变量,其中包含我的分组依据查询。 输出.txt显然是写入输出的地方。
-
您可以使用 JS
Date
对象( http://www.w3schools.com/js/js_obj_date.asp ),它确实支持这种日期表示法,但是您这样做的方式通常是制作日期的最佳方式,ISO 日期总是更好,这就是为什么 Mongo 在大约 v1.6 或 8 中从普通的Date
对象更改为这些(现在不记得了:'
)。 -
由于 group 返回单个 BSON 文档(这意味着结果不能大于 16meg),因此您必须对它们进行客户端排序。更正:您无法对传入的查询进行排序,因为我刚刚意识到它是一个对象。所以这是一个客户端的事情。虽然如果你使用 MR,你可以这样做(我认为)。
-
只需将返回的结构写入平面文件即可。这是一个单一的文档,我不知道您希望如何将结果格式化为平面文件或您希望用哪种语言处理它,但是通常您会从(例如)PHP 触发组命令并在那里处理它。在这些语言中更容易。
注意:Group() 不适用于分片,我认为聚合框架 (http://docs.mongodb.org/manual/applications/aggregation/) 几乎会取代它。
相关文章:
- MongoDB Querying: Order & Export Results
- webgl drawArray intermediate results
- Highcharts - export to base64
- Date.parse() results in NaN
- NodeJS异步模块:如何在回调中获取results对象
- Wait for All Loop Results Javascript
- jade, express, and mysql results
- Angular + httpService: POST & DELETE results?
- P5js SVG Export
- Excel VBA Javascript Export
- 在 cordova 提示符下将子字符串添加到 results.input1
- AngularJS ng-grid Export to Excel for selectedItems
- Breeze JS:有没有办法从data.results中查询实体
- 使用 drive.files.export (Drive API v3) + API 密钥以文本/纯文本格式获取公共 G
- 在同一文档中重用 export.function
- Displaying php results in html <div>?
- 在打字稿 0.9.1.1 中,在 jquery.d.ts 文件中声明模块“jquery” { export = $; }
- 我们可以把正则表达式放在 seleniumServerJar 的 export.config 的量角器中吗?
- 如何将数据从 module.export 函数传递到对象
- Jquery FullCalendar export to excel