MongoDB findAndModify() with aggregation

Alan DeKok aland at
Fri Mar 20 15:16:48 CET 2020

On Mar 20, 2020, at 8:05 AM, Benjamin Thompson <b.thompson at> wrote:
> The findAndModify() method was recently updated to support
> aggregation. This means that the "update" parameter now accepts two
> different sytaxes:
> Old syntax (no aggregation):
> db.collection.findAndModify(query: { ... }, update: { ... } )
> New syntax (with aggregation):
> db.collection.findAndModify(query: { ... }, update: [ ... ] )
> The difference being that square bracket are used instead of curly
> bracktes for the aggregation pipeline.
> The first syntax works with FreeRADIUS but the second syntax gives the error:
> rlm_sql_mongo: 'update' does not hold a document.

  It's not clear why... I'm not a Mongo expert.  I just read the MongoC API, and poked things until it worked.  The API is pretty good, which helped.

> If there is any possiblitly to support the aggregation option then I
> think this would be very useful as it allows much more complex data
> processing inside the request.

  Sure.  What API does the module have to use?

  Alan DeKok.

More information about the Freeradius-Users mailing list