mongodb - 忽略匹配条件之前的特殊字符

标签 mongodb

如何在 mongo 中编写与以下内容等效的内容?在检查条件之前,我需要忽略特定列中的一些字符(空格、连字符)。为了举一个 mysql 的例子,我只是删除了空格。

select * from TABLE
where REPLACE('name', ' ', '') = 'TEST'

因此,如果名称列具有“T E S T”,则应该匹配。

最佳答案

您可以尝试在查询中使用 $where 运算符:

{$where: "this.name.replace(/[ -]/g,'') == 'TEST'"}

或者:

{$where: "this.name.match(/T[ -]*E[ -]*S[ -]*T/)"}

或直接使用$regex:

{name: /T[ -]*E[ -]*S[ -]*T/}

有关 $where 的更多信息$regex运算符。

关于mongodb - 忽略匹配条件之前的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24486882/

相关文章:

mongodb - 删除大小大于特定值的文档

mongodb - 如何连接/查询 Mongoose 到现有数据库

node.js - 如何像在sql中一样在mongodb中正确使用 'exist'函数?

mongodb - 如何设置 mongod --dbpath

mongodb - Golang MongoDB在列表上使用$ in运算符-结果参数必须是 slice 地址

node.js - 在 node.js 中模拟数据库?

node.js - 连接到 MongoDB Atlas 的 Loopback API 失败

node.js - 默认在 mongoose 保存中不起作用 - 字段未保存

node.js - 获取 MongoDB 中特定月份和特定年份的文档

javascript - MongoDB:String ID 的 $lt 比较等同于 ObjectID 比较吗?