gpt4 book ai didi

mongodb - mapReduce 内联结果与 java mongodb 驱动程序 3.2

转载 作者:可可西里 更新时间:2023-11-01 09:58:51 26 4
gpt4 key购买 nike

如何使用 mongodb java 驱动程序 3.2 从 mapReducet 获得内联结果?

我在使用驱动程序版本 2.x 时:

DBColleciont coll = client.getDB(dbName).getCollection(collName);
coll.mapReduce(map, reduce, null, OutputType.INLINE, query);

新的 3.x 驱动程序有两个返回 MapReduceIterablemapReduce() 方法,其中缺少指定 INLINE 输出模式的方法。

MongoCollection<Documetn> coll = client.getDatabase(dbName).getCollection(collName)
coll
.mapReduce(map, reduce).
.filter(query);

最佳答案

您可以手动创建 map-reduce 命令:

    String mapFunction = ...
String reduceFunction = ...

BsonDocument command = new BsonDocument();

BsonJavaScript map = new BsonJavaScript(mapFunction);
BsonJavaScript red = new BsonJavaScript(reduceFunction);
BsonDocument query = new BsonDocument("someidentifier", new BsonString("somevalue"));
command.append("mapreduce", new BsonString("mySourceCollection"));
command.append("query", query);
command.append("map", map);
command.append("reduce", red);
command.append("out", new BsonDocument("inline", new BsonBoolean(true)));

Document result = mongoClient.getDatabase(database).runCommand(command);

我认为这非常丑陋,但这是迄今为止我使用 3.2 发现的唯一可行的解​​决方案。 (...并且也会对更好的变体非常感兴趣...;-))

关于mongodb - mapReduce 内联结果与 java mongodb 驱动程序 3.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37785536/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com