$regex 与 find() 和 update() 猫鼬的工作方式不同
$regex working differently with find() and update() mongoose
我使用以下正则表达式来查找文本片段中的链接。
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'}})
有人可以指出正则表达式(如果有)的用法有什么区别。
如果您希望 update
不仅仅应用于 第一个 匹配项,您需要提供 {multi: true}
选项。
Table.update({text: { $regex: searchQuery, $options: 'xi' }},
{$set: {tags: 'bookmark'}},
{multi: true})
我使用以下正则表达式来查找文本片段中的链接。
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'}})
有人可以指出正则表达式(如果有)的用法有什么区别。
如果您希望 update
不仅仅应用于 第一个 匹配项,您需要提供 {multi: true}
选项。
Table.update({text: { $regex: searchQuery, $options: 'xi' }},
{$set: {tags: 'bookmark'}},
{multi: true})