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

时间:2019-06-17 10:24:34

标签: 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”,然后检查元素值?

1 个答案:

答案 0 :(得分:1)

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