下面是我的文档结构:
{
        "name": "object name",
        "details": "object details",
        "images": [{
                "size": "large",
                "url": "http://domain.com/large.png"
        }, {
                "size": "medium",
                "url": "http://domain.com/medium.png"
        }, {
                "size": "small",
                "url": "http://domain.com/small.png"
        }]
}有些文档只有“大”图像,有些文档有全部图像,有些文档只有“中”图像。我想做的是,获取数组最后一个元素的url。
这是我尝试过的:
.find({},{"images.url":1}) 返回所有url。我也尝试过使用$slice,但没有成功(参数错误)。
请注意,我正在尝试获取“最后一个元素的url”,而不是“最后一个元素”。
寻找解决方案。
发布于 2015-06-30 21:22:24
您可以使用map()来过滤响应:
.find({}, { _id: 0, name: 0, details: 0, images: { $slice: -1 } }).map( function(u) { return u.images[0].url; } );发布于 2015-07-01 00:14:47
我意识到$slice不能为我工作的原因是我的mongodb是2.6.6版本,我把我的mongodb更新到了3.0.4版本,它的工作方式如下所示:
.find({},{"images.url":1,"images.url":{$slice:-1}})感谢你到目前为止的所有评论。
https://stackoverflow.com/questions/31137245
复制相似问题