Skip to main content

Parameters and Rules

General Rules

Parameter binding and conditional expansion run before the command reaches MongoDB. They do not require SQL syntax. In JdbcTemplate, method annotations, or Mapper files, write a native command and bind its values; see Parameter Passing.

For example, this native command binds values instead of concatenating user input:

test.user_info.count({id: #{id}, name: #{name}})

The @{if, condition, command fragment} rule can select a command or fragment. Only the selected branch binds parameters; the resulting command must be valid MongoDB syntax.

SQL Fragment Rules

AND, OR, SET, and IN rules generate SQL fragments; they do not translate them into MongoDB commands. In particular, @{in} produces a parenthesized, comma-separated list of placeholders, not a native collection parameter.

Use native command syntax with bound values, and use general conditional rules to select fragments. This is a restriction on the generated syntax, not a lack of parameter binding or rule expansion.