MongoDB Atlas搜索过滤器范围与OR标准



我想使用MongoDB Atlas search对日期进行范围搜索,但我也需要在根本没有日期的地方包含搜索结果。这就是我在聚合管道的$match阶段中的做法:

$match: {
$or: [
{
publish_start_date: {
$lte: todayDateTime,
},
},
{
publish_start_date: undefined,
},
],
}

这相当于图集$search中的第一部分

$search: {
index: "iapp-component-search",
compound: {
filter: [
{
range: {
path: "publish_start_date",
lte: todayDateTime,
},
},
]
}
}

我知道我可以简单地在$search之后将$match阶段添加到聚合管道中,但Atlas文档说这对性能不好,所以我想将其包含在$search的过滤器中。

我该如何添加一个";OR";子句是否还包括$search阶段中publish_start_dateundefined的文档?

对于所有没有开始日期的文档,在日期中写入占位符值,例如0000-00-00。如果缺少日期对您的应用程序有意义,请将数据+占位符复制到一个新字段中。

相关内容

  • 没有找到相关文章

最新更新