MongoDB 具有 OR 条件的图集搜索过滤器范围
MongoDB Atlas search filter range with an OR criteria
我想使用 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,
},
},
]
}
}
我知道我可以简单地将 $match
阶段添加到 $search
之后的聚合管道,但是 Atlas 文档说这对性能不利,所以我想将它包含在$search
.
的过滤器
如何添加“OR”子句以在 $search
阶段也包含 publish_start_date
为 undefined
的文档?
对于所有没有开始日期的文档,将占位符值写入日期,例如0000-00-00。如果缺少的日期对您的应用程序有意义,请将数据 + 占位符复制到新字段中。
我想使用 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,
},
},
]
}
}
我知道我可以简单地将 $match
阶段添加到 $search
之后的聚合管道,但是 Atlas 文档说这对性能不利,所以我想将它包含在$search
.
如何添加“OR”子句以在 $search
阶段也包含 publish_start_date
为 undefined
的文档?
对于所有没有开始日期的文档,将占位符值写入日期,例如0000-00-00。如果缺少的日期对您的应用程序有意义,请将数据 + 占位符复制到新字段中。