美元符号在字符串中使用时,是否意味着有关数组的任何特殊含义?

问题描述:

鉴于这种猫鼬查询,美元符号在这里意味着什么?美元符号在字符串中使用时,是否意味着有关数组的任何特殊含义?

customers.findOne({'name':data.tenant,'scripts.name':data.name},{'scripts.$':1},function(err,data2){ 

这最终返回scripts数组中的一个元素。

下面的美元符号以同样的方式工作?

var newStr = loc.replace(/(.*\/)[^/]+(\/[^\/]*)$/,'$1'+data.name+'$2'); 

$1$2是所述阵列的所述第一和第二元件。

$字符在字符串中使用时,是否对数组,索引等有特殊意义?

或者$分别被findOnestring.replace函数分别覆盖和使用的方式不同?

+0

'''没有语言范围的含义。 – Pointy

+0

@Pointy“no”将是一个有效的答案,我会奖励积分为 – Houseman

$1是特定于取代()函数如前所述

$在数据库查询是mongodb特有的令牌这意味着“数组条目匹配您的请求”,您可以在mongodb文档中找到它

所以不,这个符号没有语言范围的含义。它有时用作函数名称(jQuery),但它只是一个常规文字,对此没有特别之处。

+0

我试过在mongodb文档中寻找,但找不到它。如果你知道它在哪里,你可以链接到它吗? – Houseman

+1

http://docs.mongodb.org/manual/reference/operator/update/,“$ - 用作占位符来更新与更新中的查询条件相匹配的第一个元素。” – alex

+0

我认为这更符合我的情况:http://docs.mongodb.org/manual/reference/operator/update/positional/ – Houseman

$1$2是您的正则表达式的反向引用。

鉴于var newStr = loc.replace(/(.*\/)[^/]+(\/[^\/]*)$/,'$1'+data.name+'$2');

$1是指任何通过第一组括号

$2是指任何由第二组括号匹配匹配

+0

这个特定的功能是否受限于'replace'函数,或者美元符号是否可以在其他地方以类似的方式使用? – Houseman

+0

这是替换... – dandavis

+0

@dandavis谢谢... – Houseman