猫鼬在数组中查询多个匹配项

时间:2019-02-10 01:00:03

标签: node.js mongodb mongoose mongodb-query

在过去的6个小时里,我一直试图弄清楚这一点,但实际上并没有解决。出了Panadols ..希望有人可以帮忙:)

我有一个简单的mongoDB集合,其中包含位置列表。全地址栏是一个包含该地址组成部分的数组。

这里是一个例子:

full_address: Array 0:"APARTMENT 7" 1:"KILMINCHY COURT" 2:"KILMINCHY" 3:"PORTLAOISE" 4:"CO. LAOIS"

我正在尝试使用猫鼬建立查询,该查询将返回准确的结果。

假设我将其用作查询 “ 7号公寓,葡萄牙”

我遇到一些问题。

  1. 我正在使用query.split(/\s+/g)将查询转换为数组。 7号公寓最终被分成2个与正确记录不匹配的阵列。
  2. 我将$ in运算符与第1点中的代码返回的数组一起使用。问题是,它的返回记录也只包含1个单词。

实际上,上面的查询应该已经返回了我上面提到的记录。

我尝试使用正则表达式,但无法使其与$ all或$ regex运算符一起使用。

添加一个仅包含完整地址字符串的新列而不是将其保存在数组中会更容易。我必须将组件保留在数组中以用于其他目的。

这是我当前的代码

      address.find(
    {
      full_address: {
        $in: query.split(/\s+/g)
      }
    })
    .limit(10)
    .exec(function (err, resp) {
      if (err) {
        return err
      }
      resolve(resp)
    })

感谢所有花时间的人!

0 个答案:

没有答案