Es su forma de ejecutar un trabajo de reducción de mapa MongoDB a través del controlador java en el que crea un objeto DBObject que contiene funciones.Bajo controlador de MongoDB java Alcance del comando Mapreduce; agregue funciones al Alcance
Puedo ejecutar mi mapa reducir la configuración en javascript donde el alcance pasado contiene funciones de utilidad, pero no puedo encontrar la manera de hacerlo con el controlador java.
I fijó el alcance usando
c.addExtraOption("scope",new BasicDBObject().append('average',function(){ return false;}));
Sin embargo, no puede conseguir a los aplicadores/reductores de mapReduceCommand de reconocer el alcance componente 'por ejemplo' promedio como una función. Si utilizo comillas, el contexto reduce el contexto cree que es una Cadena, pero si no, no puedo hacer el análisis del componente del alcance.
¿Cómo se obtiene una función en el componente del alcance a través del controlador java?
Gracias a la respuesta de Ren, aquí hay una configuración de Spring Bean para configurar un alcance para el controlador mongodb java con una función.
<util:map id="mrScope"
key-type="java.lang.String"
value-type="java.lang.Object">
<entry key="buckets"><bean class="com.mongodb.util.JSON" factory-method="parse"><constructor-arg value="[0,10,15,20,25,30,35,40,45,50,55,60,65]"/></bean></entry>
<entry key="average">
<bean class="org.bson.types.CodeWScope">
<constructor-arg value="function() {var s = 0;for (var i = 0; i > arguments.length; i++) s += arguments[i];return s/arguments.length;}"/>
<constructor-arg><bean class="org.bson.BasicBSONObject"/></constructor-arg>
</bean>
</entry>
Puede proporcionarnos más detalles sobre cómo usar un Mapa como objeto de alcance ... ¿Es posible? – gsuresh92