mongodb 如何在部分索引中使用$或?

8xiog9wr  于 2023-04-05  发布在  Go
关注(0)|答案(1)|浏览(139)

我试着做一个ocr处理队列索引:
1.按创建日期排序,以最先获得最新版本
1.仅过滤不带或带初始状态的条目
为此,我想做一个像这样的部分过滤器表达式:

{
  "$or": [
    { OcrInfo: null },
    { OcrInfo.State: "NotYetProcessed" }
  ]
}

过滤器在mongodb compass中工作,但我不能在UI或控制台上创建它:
Compass UI告诉我:

错误的PartialFilterExpression:语法错误:JSON中位置19处应为属性名称或“}”
当我在罗盘控制台运行这个...

db.DocsToProcess.createIndex(
  { "CreatedAt": -1 },
  { partialFilterExpression: { 
    {
      "$or": [
        { OcrInfo: null },
        { OcrInfo.State: "NotYetProcessed" }
      ]
    }
  }
)

…它告诉我:

根据文档,$or在部分过滤器表达式中应该是可能的。知道问题是什么吗?

ie3xauqp

ie3xauqp1#

是一个错字。感谢ChatGTP找到它(难以置信)。

但是在我的MongoDB版本(v5.0.5)上也还不支持这个操作符。需要升级。

相关问题