Jquery中文网 www.jquerycn.cn
Jquery中文网 >  数据库  >  mogodb  >  正文 有关mongo shell中特殊判断符号转义的问题

有关mongo shell中特殊判断符号转义的问题

发布时间:2014-07-20   编辑:www.jquerycn.cn
本文介绍下,mongo shell中特殊判断符号转义的问题与解决方法,有需要的朋友参考下。

本节主要内容:
mongo shell中特殊判断符号转义的问题。

问题:
 

复制代码 代码示例:
[root@mongo ~]# bash -x t.sh
+ /usr/local/mongodb/bin/mongo 127.0.0.1:37017/test -uadmin -padmin --quiet --eval 'printjson(db.tickets.findOne({date:{:ISODate(2013-01-10T01:16:33.303Z)}},{_id:1}))'
Fri Apr 26 15:32:49 SyntaxError: invalid property id (shell eval):1

用bash调试问题,会在界面输出执行命令:
 

复制代码 代码示例:
 /usr/local/mongodb/bin/mongo 127.0.0.1:37017/test -uadmin -padmin --quiet --eval "printjson(db.tickets.findOne({"date":{\$lt:ISODate(\"2013-01-10T01:16:33.303Z\")}},{"_id":1}))"
 

-- 在赋予变量时,有的转义需要赋予2个\\才行,比如$lt等
在``里的\$lt运行之前就被转义成$lt,但是在运行时$lt又被执行了,然后就是空。
``里的\\$lt解析时被转义成\$lt,运行时就是$lt了。

例如:
 

复制代码 代码示例:
[root@mongo ~]# bash -x m.sh
+ (( i=1 ))
+ (( i<=2 ))
++ /usr/local/mongodb/bin/mongo 127.0.0.1:37017/test -uadmin -padmin --quiet --eval 'printjson(db.tickets.findOne({date:{$lt:ISODate("2013-01-10T01:16:33.303Z")}},{_id:1}))'
+ objectid='{ "_id" : ObjectId("5178bbaf7d2823c22b9ae0c8") }'
+ (( i++ ))
+ (( i<=2 ))
++ /usr/local/mongodb/bin/mongo 127.0.0.1:37017/test -uadmin -padmin --quiet --eval 'printjson(db.tickets.findOne({date:{$lt:ISODate("2013-01-10T01:16:33.303Z")}},{_id:1}))'
+ objectid='{ "_id" : ObjectId("5178bbaf7d2823c22b9ae0c8") }'
+ (( i++ ))
+ (( i<=2 ))

您可能感兴趣的文章:
有关mongo shell中特殊判断符号转义的问题
js特殊字符转义类型
JavaScript 特殊字符示例
php表单提交特殊字符过滤方法
url特殊字符转义小知识
js过滤特殊字符输入
js 过滤特殊字符的简单例子
js过滤url参数特殊字符的方法
js特殊字符验证代码
php正则过滤特殊字符的方法

[关闭]