如何解决Mongo Shell对负向正则表达式的支持
Mongo Shell是否不支持负面的后顾之忧?示例:
'aaabbb'.replace(/(?<!a)b/g,'X')
将
b
之前没有的所有a
替换为X
浏览器控制台输出:
aaabXX
对。但是,如果我将其放入test.js
中并执行mongo < ./test.js
,则会得到:
MongoDB shell version v3.4.23
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.23
2020-08-14T10:15:13.199-0700 E QUERY [thread1] SyntaxError: invalid regexp group @(shell):1:17
bye
就ECMAScript而言,我找不到有关Mongo shell支持的任何权威性文档...但看来,它(至少)不支持负面的后顾之忧。发生了什么事?
解决方法
它正在新的MongoDB Shell中运行,
Connecting to: mongodb://127.0.0.1:27017
Using MongoDB: 4.4.0
Using Mongosh Beta: 0.1.0
> 'aaabbb'.replace(/(?<!a)b/g,'X')
aaabXX
有关mongosh的更多信息,请参阅docs和download(如果您使用自制软件在macOS上)
$ brew tap mongodb/brew
$ brew install mongosh
我不知道为什么它不能在本地CMD中工作,我在web mongo shell v4.2.0中尝试了但也没有工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。