首页 > 解决方案 > 如何在不更新值的情况下修改值,然后将其与 mongodb 中的元素匹配?

问题描述

我有一个元素,我正在动态匹配其值。唯一的区别是 DB 中的值与下划线连接,而我得到的值没有下划线。那么有什么方法可以根据我得到的修改值并应用“查找”。

收藏:

    "name": {
      "age": 23,
      "firstname": "sweta",
      "secondname": "sharma"},
      "hobbyImages": [
         0: "0_abc_0.jpg",
         1: "1_def_1.jpg"
      ]
    }

询问:

db.find({ "name.age": 23, "hobbyImages": imageName });

我的图像名称为abc.jpg

预期结果:

我上面提到的收藏,但我什么也没得到。有谁知道如何删除“_”和“0”然后检查元素值?

标签: mongodb

解决方案


您可以尝试将图像与$regex.

const [name, ex] = imageName.split('.');
const regex = new RegExp(`\\d_${name}_\\d.${ex}`, "gi")
db.users.find(
   { "name.age": 23, "hobbyImages": { "$elemMatch": { "$regex": regex } } }
)

推荐阅读