这是我的文档结构:
{
"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})
返回所有网址。 我也尝试使用$ slice,没有任何成功(参数错误)。
请注意,我试图获取“最后一个元素的网址”而不是“最后一个元素”
寻找解决方案。
答案 0 :(得分:1)
You can use map() to filter the response :
.find({}, { _id: 0, name: 0, details: 0, images: { $slice: -1 } }).map( function(u) { return u.images[0].url; } );
答案 1 :(得分:1)
我意识到$ slice不适合我的原因是我的mongodb是版本2.6.6 我将我的mongodb更新到版本3.0.4,它的工作原理如下:
.find({},{"images.url":1,"images.url":{$slice:-1}})
感谢您到目前为止的所有评论。