Definición
$commentEl operador del query
$commentasocia un comentario a cualquier expresión que utilice un predicado de query.Porque los comentarios se propagan a la
profileregistro, agregar un comentario puede hacer que los datos de su perfil sean más fáciles de interpretar y rastrear.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 generador de perfiles de base de datos está habilitado, la siguiente salida 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 base de datos está establecido en 2 y slowms está establecido en 0ms. Este comando establece estos dos db.setProfilingLevel() parámetros:
db.setProfilingLevel(2, 0)
El comentario del db.records.find() ejemplo anterior 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." ...
Adjuntar un comentario a una expresión de agregación
Puede utilizar con cualquier expresión que tome un predicado de $comment consulta.
El siguiente ejemplo utiliza el operador $comment $match en la etapa 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" } } } ] )