【问题标题】:Date range in mongodb atlas search using queryString is not working使用 queryString 的 mongodb 地图集搜索中的日期范围不起作用
【发布时间】:2021-11-05 02:54:16
【问题描述】:

我试过这个但没有成功(我得到一个空的结果):

{
    queryString: {
      defaultPath: 'anyfield',
      query: 'createdAt:["2000-01-30T20:19:53.123Z" TO *]'
    }
}

我也试过不加引号。

我直接尝试了范围运算符,它可以工作,但我的查询是 queryString,所以我需要它在 queryString 中工作。

【问题讨论】:

  • 您可以添加示例数据吗?
  • 样本数据:{anyfield: 'any value', createdAt: ISODate('2021-01-01T00:00:00.000Z')}

标签: mongodb lucene full-text-search mongodb-atlas mongodb-atlas-search


【解决方案1】:

如果您有一个方便的日期对象,那就太好了。如果没有,像这样(伪代码/JS):

date = new Date;
date = date.toISOString();

那么,这是来自docs的查询:

    {
        "$search": {
           "index": "default",
           "range": {
              "path": "anyField",
              "gte": "2000-01-30T20:19:53.123Z",
              "lte": date,
           }
        }
}

【讨论】:

【解决方案2】:

根据 mongodb 工程师的说法,queryString 运算符只接受 AND 和 OR。它不接受在范围过滤器中使用的任何其他运算符,例如 TO。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-20
    • 1970-01-01
    • 2015-04-25
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    • 1970-01-01
    相关资源
    最近更新 更多