$comment
MongoDB5.0 已于 10 月2024 结束生命周期。不再支持此版本的文档。要升级5.0 部署,请参阅 MongoDB6 。0 升级程序。
定义
行为
可以将 $comment
与任何采用查询谓词的表达式一起使用,例如 db.collection.updateOne()
中的查询谓词,或聚合管道中 $match
阶段中的查询谓词。有关示例,请参阅将注释附加到聚合表达式。
示例
将注释附加到 find
db.records.find( { x: { $mod: [ 2, 0 ] }, $comment: "Find even values." } )
如果启用了数据库分析器,则以下输出显示 system.profile
集合中的注释:
{ "op" : "query", "ns" : "test.records", "command" : { "find" : "records", "filter" : { "x" : { "$mod" : [ 2, 0 ] }, "$comment" : "Find even values." }, "comment" : "Find even values.", ...
如果数据库分析器级别设置为 2 并且 slowms 设置为 0 ms,则注释还会显示在 MongoDB 日志中。此 db.setProfilingLevel()
命令设置这两个参数:
db.setProfilingLevel(2, 0)
在 MongoDB 日志中,上一个 db.records.find()
示例的注释如下所示:
{"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." ...
为聚合表达式附加注释
您可以将 $comment
与任何采用查询谓词的表达式一起使用。
以下示例在 $match
阶段使用 $comment
操作符来阐明操作:
db.records.aggregate( [ { $match: { x: { $gt: 0 }, $comment: "Don't allow negative inputs." } }, { $group : { _id: { $mod: [ "$x", 2 ] }, total: { $sum: "$x" } } } ] )