从MongoDB正则表达式中排除字符串



我的文档如下所示。

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

我试图用正则表达式2source中搜索文档。我正在拿到所有的3份文件。我想要下面的结果。

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

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

尝试下面的正则表达式。

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

从您的注释中,您似乎希望在source字段中找到具有2019的文档,即使它包含%2。您可以使用更具体的正则表达式来完成此操作。

db.collection.find({ source: { $regex: "2019" } })

相关内容

  • 没有找到相关文章

最新更新