$ regex与find()和update()mongoose的工作方式不同

我有以下正则expression式查找文本片段中的链接。

var searchQuery = /(^|\s|\n|>)(ftp|http[s]?):\/\/.*/gm; 

当我在find()中使用这个时,我得到11个匹配:

 Table.find({ text : { $regex: searchQuery, $options: 'xi' }}) 

但是,当我用update(),我只得到1匹配:

 Table.update({ text : { $regex: searchQuery, $options: 'xi' }}, {$set: {tags: 'bookmark'}}) 

有人能指出正则expression式的用法(如果有的话)有什么区别。

如果你想update申请不仅仅是第一场比赛,你需要提供{multi: true}选项。

 Table.update({text: { $regex: searchQuery, $options: 'xi' }}, {$set: {tags: 'bookmark'}}, {multi: true})