如何规划数据库方案以查询筛选器匹配?

时间:2016-01-05 00:14:05

标签: regex node.js mongodb database-design database-schema

我正在为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是否与数据库中的任何指定过滤器匹配。

0 个答案:

没有答案