考虑以下在MongoDB中的集合:
如何最轻松地获取以下结果:
获取数组的第n个元素。
获取第二到第四个元素
{a:[4,2,8,71,21]}
{a:[24,2,2,1]}
{a:[4,1]}
{a:[4,2,8,21]}
{a:[2,8,71,21]}
{a:[4,2,8]}
如何最轻松地获取以下结果:
获取数组的第n个元素。
{a:4}
{a:24}
{a:4}
{a:4}
{a:2}
{a:4}
获取第二到第四个元素
{a:[8,71,21]}
{a:[2,1]}
{a:[]}
{a:[8,21]}
{a:[71,21]}
{a:[8]}
以及其他类似的查询。
$slice
运算符总是返回一个数组。我不认为在 MongoDB 2.2 中有语法来将单个简单数组元素投影为标量。您可以通过 MapReduce 实现这一点,但与仅在应用程序代码中将$slice
返回的单个元素数组转换为标量相比,这似乎过于复杂。如果您的数组包含嵌入式文档,并且您想要匹配特定值(而不是数组位置),则可以使用$elemMatch
投影 来返回第一个匹配的元素。 - Stennie