MongoDB MapReduce actualización en su lugar cómo

* Básicamente estoy tratando de ordenar los objetos por su puntaje en la última hora.

Estoy tratando de generar una suma de votos por hora para los objetos en mi base de datos. Los votos están incrustados en cada objeto. El esquema del objeto se ve así:

{
    _id: ObjectId
    score: int
    hourly-score: int <- need to update this value so I can order by it
    recently-voted: boolean
    votes: {
        "4e4634821dff6f103c040000": { <- Key is __toString of voter ObjectId
            "_id": ObjectId("4e4634821dff6f103c040000"), <- Voter ObjectId
            "a": 1, <- Vote amount
            "ca": ISODate("2011-08-16T00:01:34.975Z"), <- Created at MongoDate
            "ts": 1313452894 <- Created at timestamp
        },
        ... repeat ...
    }
}

Esta pregunta en realidad está relacionada con una pregunta que hice hace un par de días La mejor manera de modelar un sistema de votación en MongoDB

¿Cómo podría (¿puedo?) Ejecutar un comando MapReduce para hacer lo siguiente:

Solo se ejecuta en objetos con puntaje votado recientemente = verdadero O por hora> 0.Calcule la suma de los votos creados en la última hora.Actualizar puntaje por hora = la suma calculada anteriormente, y votado recientemente = falso.

También leíaqu que puedo realizar un MapReduce en el DB esclavo ejecutando db.getMongo (). setSlaveOk () antes del comando M / R. ¿Podría ejecutar la reducción en un esclavo y actualizar el DB maestro?

¿Son posibles las actualizaciones in situ con Mongo MapReduce?

Respuestas a la pregunta(1)

Su respuesta a la pregunta