使用$ regex从MongoDB中的集合数组中删除所有出现的base64

时间:2018-07-09 23:27:32

标签: mongodb mongoose

我有一个包含images对象的集合,其中包含base64图像和常规文件名的数组。我需要删除所有base64元素并仅保留文件名。

/image/{upload-id}/status

我使用了以下查询,但无法更新数组:

200 OK

两个查询都返回:

 images: {
      more:[
       'data:image/jpeg;base64,/9j/4Q...',
       'data:image/jpeg;base64,/9j/4Q...',
       'data:image/jpeg;base64,/9j/4Q...',
       'file1.png', 
       'file2.png'
      ]
  }

在示例对象中,我使用image / jpeg,但是它可能还包含bmp图像或png,因此正则表达式必须匹配所有可能的图像类型。

1 个答案:

答案 0 :(得分:1)

brew uninstall imagemagick brew install imagemagick@6 brew link imagemagick@6 --force 字符串值中不包含/分隔符:

$regex

db.cars.updateMany({}, {$pull: {'images.more': {$regex: '^data(.+)$'}}}) 分隔符仅用于JS regex语法(也可以使用):

/