MongoDB и сложный запрос по упорядоченным массивам - PullRequest
1 голос
/ 28 марта 2012

У меня есть следующая сущность, сохраненная на mongo в коллекции users:

{
    "fullname": "Luke Tomson",
    "nicknames": [
        {
            "name": "lukeone",
            "created": ISODate("2011-05-18T19:42:56.411Z")
        },
        {
            "name": "magicluke",
            "created": ISODate("2012-01-12T19: 42: 56.411Z")
        },
        {
            "name": "superluke",
            "created": ISODate("2012-03-27T19: 42: 56.411Z")
        }
    }
]
}

Как получить последний псевдоним name для пользователя, чейfullname это "Luke Tomson"?А более конкретно, как мне получить в оболочке mongo определенный индекс (первый или последний) отсортированного массива, который был отсортирован по определенному полю (в данном случае created).

Спасибо

1 Ответ

1 голос
/ 28 марта 2012

Из документации второй объект, переданный в .find, представляет собой выбор того, какие части объекта вы хотите вернуть.

Итак, в основном вы хотите:

db.users.find({"fullname": "Luke Tomson"}, {"nicknames": { $slice: -1 } });

Хотя вы также можете захотеть вернуть _id, если в вашей БД несколько "Люка Томсона", и вам необходимо однозначно идентифицировать их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...