mongodb 如何删除正在请求的用户的特定照片对象,如果该照片对象具有以file://开头的照片?

klh5stk1  于 2023-02-03  发布在  Go
关注(0)|答案(1)|浏览(133)

如何删除用户的特定照片对象,如果该照片对象包含以file://开头的照片,请允许我向您介绍我在应用程序中添加的图像功能,我为它创建了一个NodeJs路由,可以处理所有这些功能,该路由按预期正常工作,现在我面临一个问题,即我正在使用expo-camera包,该包首先将图像存储在用户缓存中,然后将图像转换为firebase URL
因此,当我上传图像时,它会同时为Mongodb中的同一图像创建两个对象,一个对象包含从file://开始的缓存图像,第二个对象以firebase URL开始,这很好,但我如何在Nodejs中创建一个函数,删除该对象以file://开始的对象?我如何在Monodb中做到这一点?我收到请求上传图像的用户电子邮件
你可以检查我的代码,看看我是怎么做的,它记录Result : [object Object],它不能删除和保存用户吗,我怎么才能正确地做事情呢?你可以看到我在这里附加的图像,我有一个包含对象的照片数组,这些对象包含一个名为photo的字符串,该字符串包含该文件://URL
How it was looking currenlty with file:// uri
How it should look like after delete process of file://
我尝试了什么:

const deletePhoto = async (email) => {
    try {
      const result = await User.updateOne({
        email: email,
      }, {
        $pull: {
          photos: {
            photo: {
              $regex: "^file:"
            }
          }
        }
      });
  
      console.log(`Result : ${result}`);
      return result;
    } catch (error) {
      console.error(error);
      return error;
    }
  };
xqk2d5yq

xqk2d5yq1#

尝试:

const result = await User.findOneAndUpdate(
  {
    email: email,
  },
  {
    $pull: {
      'photos.photo': {
        $regex: /^file:/,
      },
    },
  },
  { new: true }
);

相关问题