$在per 和 php语言里表示变量前缀,在双引号中以$开头的字符串都会被替换成变量的值,然而,mongodb一开始设计成javascript数据库,$在javascript中并没有什么特殊含义,所以就这么用了,这算是mongodb的历史遗留问题。
perl和php程序员还是有些选择的。首先,可以转义$:"\$foo"。也可使用单引号'$foo',就不会有变量解释了。最后,这两种语言的驱动程序都可以不使用$,而用自己的定义。在perl中,设置$MongoDB::BSON::char,在php中设计php.ini文件的mongo.cmd_char,可以有=、:、?,或者任何你觉得可以替代$的字符都可以