我编写了一个我希望在mongo shell中的集合上运行的聚合.如果我将它直接粘贴到shell中,我必须逐行进行,这是繁琐而缓慢的,特别是当它不起作用时我必须完成它.因此,我将它放在.js文档中并像这样加载它,load("myaggregation.js")但只有true在代码有效时才会返回.加载后如何运行聚合?我找不到任何关于此的文档.我是否必须使用nodejs驱动程序?
将聚合代码放在函数中:
function my_aggregate() {
return db.foo.aggregate( [ ... ] );
}
Run Code Online (Sandbox Code Playgroud)
并将其存储在您的.js文件中.
然后运行load加载它.您还可以使用--shell命令行标志在命令行上传递文件名,该标志将在运行任何指定.js文件后启动交互式shell .
运行文件后,您可以执行新功能.只需输入
my_aggregate()
Run Code Online (Sandbox Code Playgroud)
更新您必须使用return我未提及的显式内容.所以在你的情况下你会想要这样的东西:
function my_aggregate() {
return db.zips.aggregate([{ $match: { state: { $in: [ "CA", "NY" ] } }},{ $group:{ _id : { "state" : "$state","city" : "$city" }, pop : { $sum: "$pop"}}},{ $match: { pop: { $gt: 25000 } }},{$group:{ _id : { "city" : "$city"}, pop : { $avg: "$pop"}}}]);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3752 次 |
| 最近记录: |