我的文档包含名为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