Java-драйвер Mongo - получить фрагмент массива без какого-либо другого поля

У меня есть класс с именем user, который можно упростить до:

class User {
    String[] friends;
    //Constructor etc...
}

Он хранится в коллекциях монго, называемых пользователями. Я пытаюсь получить первые N элементов массива друзей без чего-либо еще из класса.

Прямо сейчас я попытался использовать следующий java-запрос:

db.getCollection("users").find(new BasicDBObject(), new BasicDBObject("friends", new BasicDBObject("$slice", N))).next();

Как и ожидалось, я получаю объект User с фрагментом массива друзей. Но он также возвращает все остальные поля в классе User (здесь не показаны), которые мне не нужны.

Любая идея, как я могу заставить его отправлять обратно только массив друзей?

++Ура


person Rand    schedule 07.06.2011    source источник


Ответы (1)


Попробуйте добавить «friends: true» следующим образом:

db.getCollection("users").find(new BasicDBObject(), new BasicDBObject("friends", new BasicDBObject("$slice", N)).append("friends", true)).next();

Он должен иметь поля _id и друзей.

person Joshua    schedule 07.06.2011