MongoDB中的通配符搜索
Wildcard Search in MongoDB
有人可以帮助我在MongoDB中使用以下通配符搜索条件吗?文档:
{"path":"foo/bar/{id}/somethingelse"}
或
{"path":"foo/bar/*/somethingelse"}
我想要得到这个文档当一个查找请求来的时候像这样:
db.collection.find({path:"foo/bar/1/somethingelse"})
或
db.collection.find({path:"foo/bar/2/somethingelse"})
所以如果文档有一些通配符,我想要匹配它的一个匹配模式的标准
对于这样的通配符,您可以使用regex,它看起来像:
db.collection.find({"path": new RegExp("foo/bar/.*?/somethingelse")})
但是如果我正确理解你的问题,你有一个单个文档在你的集合与{"path":"foo/bar/{id}/somethingelse"}
的路径,你想返回它,如果查询实际上是为db.collection.find({path:"foo/bar/1/somethingelse"})
。要做到这一点,最好在搜索之前执行搜索替换以更改实际查询,如下所示。
path = path.replace(/foo'/bar'/(.*)'/somethingelse/, 'foo/bar/{id}/somethingelse')
db.collection.find({path:path})
希望这对你有帮助!
基于注释编辑
要进行反向通配符匹配,以下操作应该可以工作,返回所请求的文档和任何匹配的通配符。您需要定义每个实际的通配符是什么才能使其工作。
path.replace(/foo'/bar'/(.*)'/somethingelse/, 'foo/bar/($1|{id}|'*)/somethingelse')
db.collection.find({path: new RegExp(path)})
相关文章:
- JavaScript中的通配符日期形式
- JavaScript上的通配符(也许这不费吹灰之力?)
- 带有通配符的姓氏Reg表达式
- javascript中通配符搜索的正则表达式
- Javascript:通配符正则表达式搜索
- 如何通过 jquery 通配符搜索数据属性的精确包含值
- 用于搜索的通配符表达式
- Indexeddb:使用通配符进行搜索
- 使用通配符在JS中搜索数组
- Javascript通配符regex搜索结果不一致
- 通过通配符字符串快速搜索数组
- 如何使用MySQL和PHP创建一个通配符搜索函数
- 在couchdb中的通配符搜索
- Select2 -搜索通配符匹配
- 在搜索字符串中包含通配符的正则表达式
- 如何在angularjs中使用通配符搜索
- 阵列搜索的Regex通配符
- MongoDB中的通配符搜索
- 搜索字符串中的通配符
- 通配符搜索(?, *)在字符串数组中使用javascript