Вот моя структура документа:Как .find() "URL-адрес последнего элемента массива"?
{
"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 последнего элемента» не «последний элемент»
ищет решение.
Возможный дубликат [с использованием оператора $ slice для получения последнего элемента массива в mongodb] (http://stackoverflow.com/questions/21952005/using-slice-operator-to-get-last-element-of-array -in-mongodb) – scx
Вы пытались использовать '$ slice' таким образом' db.test.find ({}, {"images.size": 0, "images": {"$ slice": -1}}) 'или получить значение url с помощью' findOne() 'как' db.test.findOne ({}, {"images.size": 0, images: {$ slice: -1}}). images [0] .url '? – chridam
Я не уверен, что там не так, но $ slice: -1 не имеет никакого значения вообще, похоже, что я делаю .find(), а не отправляю правильный запрос @chridam – Mia