【发布时间】:2021-04-13 14:50:49
【问题描述】:
如何找到数据库中的所有对象,其中对象的字段包含子字符串?
如果该字段是具有字符串值的集合对象中的A:
我想在 db“数据库”中找到所有对象,其中 A 包含一个子字符串,比如“abc def”。
我试过了:
db.database.find({A: {$regex: '/^*(abc def)*$/''}})
但没用
更新
一个真实的字符串(unicode):
Sujet Commentaire sur Star Wars Episode III - La Revanche des Sith 1
需要用星球大战搜索所有条目
db.test.find({A: {$regex: '^*(star wars)*$''}}) not wokring
【问题讨论】:
-
正如@derick 指出的那样,如果您想查找“任何字符串”,您需要
.*:.用于任何(单个)字符,*用于“前一个任意次数(包括零)次。您拥有的(star wars)*$将匹配“star warsstar warsstar wars”,但不会匹配“star wars is great”。