Definición
$commentEl operador del query
$commentasocia un comentario a cualquier expresión que utilice un predicado de query.Porque los comentarios se propagan al
profileregistro, agregar un comentario puede facilitar la interpretación y el rastreo de los datos de su perfil.El operador
$commenttiene la forma:db.collection.find( { <query>, $comment: <comment> } )
Comportamiento
Puede usar$commentcon cualquier expresión que tome un predicado de consulta, como el predicado de consulta endb.collection.updateOne()o en la etapa$matchdel flujo de trabajo de agregación. Para ver un ejemplo, consulte "Adjuntar un comentario a una expresión de agregación".
Ejemplos
Adjuntar un comentario a find
El siguiente ejemplo agrega $comment una operación find() a una operación:
db.records.find( { x: { $mod: [ 2, 0 ] }, $comment: "Find even values." } )
Si el Perfilador de base de datos está habilitado, la siguiente información muestra el comentario en la system.profile colección:
{ "op" : "query", "ns" : "test.records", "command" : { "find" : "records", "filter" : { "x" : { "$mod" : [ 2, 0 ] }, "$comment" : "Find even values." }, "comment" : "Find even values.", ...
Los comentarios también aparecen en el registro de MongoDB si el nivel del perfilador de la base de datos está configurado en 2 y slowms se configura en 0 ms. Este comando db.setProfilingLevel() configura estos dos parámetros:
db.setProfilingLevel(2, 0)
El comentario para el anterior ejemplo de db.records.find() aparece de la siguiente manera en el registro de MongoDB:
{"t":{"$date":"2020-09-17T11:32:20.415-07:00"},"s":"I", "c":"COMMAND", "id":51803, "ctx":"conn7","msg":"Slow query", "attr":{"type":"command","ns":"test.records","appName":"MongoDB Shell","command":{"find":"records","filter":{"x":{"$mod":[2.0,0.0]}, "$comment":"Find even values."},"comment":"Find even values." ...
Anexar un comentario a una expresión de agregación
Puede utilizar el $comment con cualquier expresión que tome un predicado de query.
El siguiente ejemplo utiliza el operador $comment en la etapa $match para aclarar la operación:
db.records.aggregate( [ { $match: { x: { $gt: 0 }, $comment: "Don't allow negative inputs." } }, { $group : { _id: { $mod: [ "$x", 2 ] }, total: { $sum: "$x" } } } ] )