如何修改该值而不更新它,然后将其与mongodb中的元素匹配?

如何修改该值而不更新它,然后将其与mongodb中的元素匹配?,mongodb,Mongodb,我有一个元素,我正在动态地匹配它的值。 唯一的区别是DB中的值用下划线连接,而我得到的值没有下划线。那么,是否有任何方法可以根据我得到的内容修改值并应用“find” 收藏: "name": { "age": 23, "firstname": "sweta", "secondname": "sharma"}, "hobbyImages": [ 0: "0_abc_0.jpg", 1: "1_def_1.jp

我有一个元素,我正在动态地匹配它的值。 唯一的区别是DB中的值用下划线连接,而我得到的值没有下划线。那么,是否有任何方法可以根据我得到的内容修改值并应用“find”

收藏:

    "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

预期结果:

我上面提到的收藏,但我没有得到任何东西。
有人知道如何删除“\ux”和“0”,然后检查元素值吗?

您可以尝试将图像与
$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 } } }
)

图像字符串的结构总是
?@Ravi Shankar Bharti它总是这样的that@Vassilis帕拉斯:我没有这种“gi”的内容。我只有“abc.jpg”美元期权中的“gi”是什么意思?我在选项中没有听说过“g”,它是全局匹配修饰符。查找所有匹配项,而不是在第一次匹配后停止。@Felipe Sulser我可以举个例子吗?我编辑我的答案。
i
不敏感
g
是全局的(第一次匹配时不停止)