首页 > 解决方案 > 从 MongoDB 正则表达式中排除字符串

问题描述

我的文件看起来像这样。

{
   "sId": "s1",
   "source": "September Challenge %2s",
},
{
   "sId": "s2",
   "source": "September 2019 Challenge %2s"
},
{
   "sId": "s3",
   "source": "September Challenge 2019"
}

source我试图通过使用 regex搜索来查找文档2。我得到了所有 3 份文件。我想要下面的结果。

{
   "sId": "s2",
   "source": "September 2019 Challenge %2s"
},
{
   "sId": "s3",
   "source": "September Challenge 2019"
}

第一个文件应该被忽略,因为它有%2s,第二个和第三个文件应该来,因为它包含2019。谁能指导我如何实现上述目标。

标签: regexmongodb

解决方案


试试下面的正则表达式。

db.getCollection('somecollection').find({field: {$regex: '(?<!%)<word>(?!=s)'}})

推荐阅读