1

我们的缺陷中有一个称为“需要更多信息”的状态。我想创建一个随时间变化的图表,显示在任何特定时间段内处于该状态的缺陷数量。

我想我可以通过 Lookback API 使用以下查询获取信息:

my $find = {
    State                   => 'Need More Information',
    '_PreviousValues.State' =>  {'$ne' => 'Need More Information'},
    _TypeHierarchy          => -51006, # defect

    _ValidFrom  => {
        '$gte'  => '2012-09-01TZ',
        '$lt'   => '2012-10-23TZ',
    }

我认为这会给我一个包含所有缺陷快照的列表,其中缺陷正在转换为“需要更多信息”状态,但事实并非如此(似乎列出了曾经处于“需要更多信息”状态的所有内容。

从技术上讲,我需要的是一个查询,它列出了从“需要更多信息”状态转换为或从“需要更多信息”状态转换的任何缺陷的快照,但由于这个更简单的方法似乎没有按我预期的那样工作,我想我会先问为什么上面的查询没有按我预期的方式工作。

返回的标题中的“生成的查询”是:

    'fields' => 1,
    'skip' => 0,
    'limit' => 100,
    'find' => {
        '_TypeHierarchy' => -51006,
        '_ValidFrom' => {
            '$gte' => '2012-09-01T00:00:00.000Z',
            '$lt' => '2012-10-23T00:00:00.000Z'
        },
        '_PreviousValues.State' => {
            '$in' => [
                undef,
                5792599066,
                5792599067,
                5792599065,
                5792599070,
                5792599071,
                5792599068,
                5792599073,
                5792599072,
                5792599075,
                5792599077,
                5792599076,
                5792599078,
                3631859989,
                3631859988,
                3631859987,
                3631859986
            ]
        },
        'State' => {
            '$in' => [
                4384150044
            ]
        }
    }
};
4

1 回答 1

3

我尝试利用该$nin条款并取得了成功。您可以尝试将查询调整为类似于以下内容:

find: {
        _Type: 'Defect',
        State: 'Need More Information',
        '_PreviousValues.State': {
            $in: [
                'Submitted', 'Open', 'Fixed', 'Closed'
            ]
        },
    etc...
    }
于 2012-10-27T18:52:34.067 回答