根据偏移量和条件限制返回的数组值

时间:2015-07-30 17:06:07

标签: mongodb mongodb-query

我的文档包含名为versions的文档数组。我希望我的查询完成的是返回该数组中与特定条件匹配的所有元素,并返回特定偏移量的特定数量。

说我有以下文件

  {
        title : 'ab',
        versions : [ {name : 'v1',active : false},
                     {name : 'v2', active : true},
                     {name : 'v3', active : true} ]
    }

我希望在这种情况下匹配标题'ab',并从最后一个元素开始,一次返回两个有效的版本。

我试过了

db.versions.find({title : 'ab'}, 
{version : {$elemMatch : {active :true },
             $slice : [offset,limit ] } } );

其中offset是数组中应返回的条目数,limit是要返回的条目数。

我运行查询并获取错误。 (我不小心把活动字段变成了字符串而不是布尔值,但这不重要)

"$err" : "Can't canonicalize query: BadValue >1 field in obj: 
 { $elemMatch: { active: \"true\" }, $slice: [ -2.0, 2.0 ] }",
        "code" : 17287

0 个答案:

没有答案