MongoDB如何找到匹配工作流的所有记录,length = currentWorkflow

yr9zkbsy  于 2023-05-17  发布在  Go
关注(0)|答案(1)|浏览(176)

我有我的2模式字段如下

workFlows: {
        type: SchemaTypes.Array,
    },
 currentWorkFlow: {
        type: SchemaTypes.Number,
    }

假设一个记录有workflows = [ "Workflow1", "Workflow2", "Workflow3" ]currentRecord = 0
这意味着我的currentWorkFlow目前指向**Workflow1**。一旦我的第一个工作流程完成,它就会改变。
问:我想要前10个完成的记录,这意味着我的currentWorkFlow指向(workFlows.length -1),在本例中是2。mongo查询怎么写?

z31licg0

z31licg01#

在aggrregation你可以使用这个

db.collection.aggregate([
  {
    "$match": {
      $expr: {
        "$eq": [
          {
            "$size": "$workFlows"
          },
          "$currentWorkFlow"
        ]
      }
    }
  }
])

在查找查询中,可以使用以下命令

db.collection.find({
  $expr: {
    "$eq": [
      {
        "$size": "$workFlows"
      },
      "$currentWorkFlow"
    ]
  }
})

相关问题