限制 Kettle 的 mongodb 输入中的行数

Posted

技术标签:

【中文标题】限制 Kettle 的 mongodb 输入中的行数【英文标题】:Limit number of rows in mongodb input of Kettle 【发布时间】:2014-11-10 08:53:17 【问题描述】:

我想通过限制行数来检索mongodb输入中的数据。 但我发现$limit 操作在 Kettle 中不起作用。

有一个类似的帖子使用$maxScan 来解决它(link)。但是我的查询中有一些条件。例如:

 "$query" :  "type" : " view "  , $orderby :  "time" : -1, $limit : 100  // not working

使用$maxScan 的结果完全不同。 $maxScan 只能返回 10 行。

我该如何解决这个问题?为什么 Kettle 不支持 $limit 操作?我认为这是一个基本的操作。

非常感谢!

【问题讨论】:

【参考方案1】:

终于!我通过@Keviswang 的建议解决了这个问题。我们必须使用MongoDB提供的聚合方法,这里是链接:docs.mongodb.org/manual/applications/aggregation。

在我的例子中,我在 Kettle 的 MongoDB Input 中使用了这个查询,我们还必须选择 Query is aggregation pipline

$match: activity_type: " view ",
$sort: activity_target: -1  ,
$limit: 10

以下屏幕截图可以帮助您更清楚地了解操作。

【讨论】:

【参考方案2】:

也许你可以使用聚合框架。

【讨论】:

什么是聚合框架?你能给我一些例子吗?非常感谢! 感谢您的建议!我找到了解决问题的方法!

以上是关于限制 Kettle 的 mongodb 输入中的行数的主要内容,如果未能解决你的问题,请参考以下文章

kettle的mongodb输入多个字段想加

pentaho dpi-5.3(kettle)中的mongodb源代码在哪里?

kettle7.0将sqlserver中的数据同步到mongoDB中

带有 ssl 连接的 Kettle mongoDB 输入

Kettle实现从mysql中取2张表数据关联的数据,并写入到mongodb中

如何在 Kettle 中过滤 Mongodb INPUT 时传递变量