mongodb - 如何在不更新值的情况下修改值,然后将其与 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”然后检查元素值?
解决方案
您可以尝试将图像与$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 } } }
)
推荐阅读
- java - JButton 没有响应
- docker - 为什么配置postman或K6等http客户端时只代理顶级请求
- php - 如何获取 PHP 中所有语言的列表
- javascript - 如何在 nodejs 的 html 文件中的画布上绘图
- python - ValueError:形状 (3, 46, 2, 2) 和 (3, 1000) 不兼容
- firebase - Firebase 部署期间的空白页面,其中 Cloud Function 重写到位
- python - 如何正确读取带单引号的 csv 文件?
- android - 如何修复这个特定的“不正确使用 ParentDataWidget”。飞镖
- c# - linq lamba 如何查询子属性列表并返回父级
- node.js - 网页设计翻译:翻译元数据有用吗?