在 SQL 中,可以运行类似于
SELECT result FROM table WHERE 'abc-def-ghi' LIKE col1
在这样的桌子上:
col1 | result
abc-% | 1
abc-d% | 2
as% | 3
... | ...
并得到一个包含 1 和 2 的结果集。
问题:如何在 mongodb 中达到相同的效果?我可以运行正则表达式来匹配字段,但是有没有办法可以将字段与提供的数据匹配?
您可以使用 $where 运算符,例如:
db.col.find({$where: "\"abc\".match(this.col1)"})
尽管 MongoDB 文档不建议使用 $where,但据我所知,这是唯一的可能性。
(这个问题可能是重复的。参见MongoDB reverse regex)
db.stuff.find( { col1 : /supplied_data/ }, { result : 1 } );
将仅返回结果字段。