我正在为MongoDB中的Filter
文档规划数据库方案,我想知道如何最好地实现这样的事情。
假设我创建了一个文档,其中包含parsed URL object中包含的某些字段,这些字段是转义的正则表达式字符串,否则为null。
现在,让我们说我有一个解析的URL对象,我想用它查询数据库,并让查询返回任何Filter
文档,其指定的正则表达式与查询匹配。基本上是反向正则表达式匹配,如果你愿意的话。
根据要求,以下是一个例子:
var requestOptions = {
protocol: 'https:',
slashes: true,
auth: null,
host: 'nodejs.org',
port: null,
hostname: 'nodejs.org',
hash: '#url_url_parsing',
search: null,
query: null,
pathname: '/docs/latest/api/url.html',
path: '/docs/latest/api/url.html',
href: 'https://nodejs.org/docs/latest/api/url.html#url_url_parsing'
};
让我们说数据库包含这些文件:
{
host: '*.org'
}
{
hash: '#url_url_parsing'
}
{
path: '/docs'
}
{
port: 443
}
{
protocol: 'http:'
}
然后是以下代码:
collection.find(requestOptions).toArray(function(err, docs) {...});
理想情况下会返回:
[{
host: '*.org'
},
{
hash: '#url_url_parsing'
}];
我怎么能做与此相当的事情?或者,如果我想到这个错误,我该如何努力实现这一目标呢?查询的目的是确定请求的URL是否与数据库中的任何指定过滤器匹配。